中国开发网: 论坛: 程序员情感CBD: 贴子 37187
Yxd
俺不知道你的具体应用是什么,能说的也就是一些基本的注意点而且可能有点细枝末节。
从性能上来讲,应该注意以下几点:
1、数据库联接的创建和关闭会有较大的时间开销,考虑池态的管理,而且数据库通常都有一个最大连接数,比如mysql(俺记得200个?)超过连接数,恐怕就当掉了。
2、数据库的优势在查询上,但是并不是所有的查询都适宜在数据库上直接操作,从安全性和性能上来说,在之前做一个内存上的缓冲会有很好的效果。例如与客户端相关的一些状态标记量直接在内存里维护,然后定期更新到数据库中就可以。更有甚者可能就是所谓内存数据库之类的了。。。
3、线程的创建和销毁也会有较大的时间开销,同样考虑池态或异步调用的方式。互斥体的同步开销也需要考虑,做好特定应用在单线程和多线程上的权衡。
4、内存的使用上,内存的分配和释放会有很大的开销,比如,如果你在服务器端使用string之类的,就要小心了,因为会很有可能频繁地reallocate。有些应用主要是分配释放一些较小的内存,而有些则是需要较大的内存分配,等等,就需要实现不同的内存分配管理方式,比如像刚才的string例子,就可以简单地替换一个allocator(Loki里的一个针对小内存的allocator俺看就比较适合)。
5、IO的优化,如果你的应用会频繁的读取磁盘,你就要考虑在内存上做大内存缓冲之类的了。
6、socket的创建、连接、关闭、销毁,同样需要池态的管理。

等等,暂时就想出这些了。至于unix/linux上的开发,我都是用的gcc,IDE爱用啥用啥。至于qt,如果你不是做界面用的话,我倒不是很赞成用。
说的不一定对,你自己的应用不一定会适合,活活:D

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录