注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

还东国的博客

行之苟有恒,久久自芬芳

 
 
 

日志

 
 

开发中遇到的几个小问题  

2015-02-02 11:57:38|  分类: LINUX编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
开发中遇到的几个小问题
最近在开发中遇到了两个小问题,一个是在从数据库POSTGRESQL中使用LIMIT加载数据慢,一个是在网络互相应答中有时候应答会丢失,还有一个是在状态切换中突然出现卡顿的现象。因为比较忙所以几个问题分别委托了两个同事分别来测试。经过了一段时间后发现了原因。
第一个是数据加载量增大后,LIMIT的步长太小,原来是1000,测试数据是60000,结果造成加载时间在128秒左右。如果直接使用全选操作不用LIMIT语句,只有2.3秒,测试加大步长,从1000增加到5000到10000,20000,40000,时间都在明显的缩小,但注意,并不成简单的倍数。其实这个很容易理解,每做一次LIMIT操作,其实都是一次IO操作,这个是相当费时的,还有这种操作,数据库一般要做一个排序的动作,所以会慢一些。
第二个是把通信的频率增加后突然出现的这个问题,后来经过测试打印通信状态,发现有同时发送数据的情况,而在统一的发送数据函数中,又有一个锁,在短时间内发送,理论上这个没什么问题,但是错误的是,这两个发送用的同一个缓冲区,而这同一个缓冲的数据是要在不同的情况下进行不同的组织的,所以数据发送就错误了,通信自然就进行不下去了。这个是编程者的一个疏忽。或者说经验也好。这个解决的方法比较简单,使用不同的缓冲区就OK了。
第三个这个问题更突然,以前一直好好的,不过这个问题解决的也很轻松,因为整个程序是要在工作是不断的保存图片的,当路径下的图片数量达到一定程度后,就出现了这个问题,这也解释了为什么突然出现这个问题,测试发现当当前图片达到三千以上时,就会有明显的卡顿现象。解决的方法也很简单,分成不同的文件夹就好了。
从上面这几个问题可以看出什么问题呢?确实公司都得需要一部分经验比较丰富的老鸟,大量使用菜鸟,这个问题是无法避免的。
顺便说一下:后来第三个问题,发现根子上是两个程序员同时写了保存图像的代码,其中一位离职的调用的QT的信号和槽机制,在大数量保存时,会反应很慢,但在另外一个同事写的线程里的操作就没有这么慢,所以说,还是得找到根子上。2015-03-23
  评论这张
 
阅读(274)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017