摘要: 在编写程序的过程中,对于一些接口往往抽象成lib库的形式,甚至有些程序只有一个主程序,其他接口的调用都是库的形式存在。较多的使用库会比较利于程序的维护,因为我们的程序都可以被其他的人使用,但是往往库的存在会增加一些编译上的问题。 在linux中有静态库和动态库两种,两者各有优劣,对于后端伺服的服务器来说,我们更倾向于静态库,因为它部署方便,效率更高,而后端的服务器并不在意那些静态库多占用的内存。 对于静态库我们要先理解其原理,静态库是一些目标文件的集合,通常为后缀为.o的文件,通过ar命令打包而成,一般命名的格式为libXXX.a。在用户创建可执行程序的过程中,同-L指定静态库的地... 阅读全文
posted @ 2014-01-20 14:32 桂皮猪 阅读(797) 评论(0) 推荐(0) 编辑
摘要: 在开发对外提供服务的模块的时候,系统的性能经常会是令我们头疼的问题,具体系统性能的定义与瓶颈的定位方法,可以参考陈皓的这篇文章:性能调优攻略http://coolshell.cn/articles/7490.html大牛的这篇文章还是很全面的。下面我会以我们的一些工程经验和曾经遇到过的问题,来实例化一些系统性能调优的经验。Ø代码级别1.减少数据copy1)使用指针,代替静态数据copy以下面的数据结构为例:struct goods_info_for_rank_t{ good_info_ptrp_goods_info;//静态数据,只可读不可写!!! ….//省略若干//策略相关的字段 阅读全文
posted @ 2014-01-20 14:31 桂皮猪 阅读(1014) 评论(0) 推荐(0) 编辑
摘要: GCC -O 选项 这个选项控制所有的优化等级。使用优化选项会使编译过程耗费更多的时间,并且占用更多的内存,尤其是在提高优化等级的时候。-O设置一共有五种:-O0、-O1、-O2、-O3和-Os。让我们来逐一考察各个优化等级:-O0:这个等级(字母“O”后面跟个零)关闭所有优化选项,也是CFLAGS或CXXFLAGS中没有设置-O等级时的默认等级。这样就不会优化代码,这通常不是我们想要的。-O1:这是最基本的优化等级。编译器会在不花费太多编译时间的同时试图生成更快更小的代码。这些优化是非常基础的,但一般这些任务肯定能顺利完成。-O2:-O1的进阶。这是推荐的优化等级,除非你有特殊的需求。-O2 阅读全文
posted @ 2014-01-20 14:28 桂皮猪 阅读(1558) 评论(0) 推荐(0) 编辑