当前位置: 首页 > news >正文

赚钱平台网站/抖音推广公司

赚钱平台网站,抖音推广公司,wordpress内容导航,百度网页版网址最近写了一个程序,发现运行时页面错误增量不停以2000/s的速度增加。通过不断注释,调试,最终定位问题出在在拼接sql语句中。 由于程序需要更新数据库,为了提高执行sql的效率,将多条sql拼在一起,一次刷新数据…

最近写了一个程序,发现运行时页面错误增量不停以2000/s的速度增加。通过不断注释,调试,最终定位问题出在在拼接sql语句中。

由于程序需要更新数据库,为了提高执行sql的效率,将多条sql拼在一起,一次刷新数据库。使用了sql=sql+str1的模式进行拼接。

实验一:

varstr1, str2, str3: string;
beginstr1 := 'delphi ';str2 := 'oracle';ShowMessage('str3='+IntToStr(Integer(str3)));str3 := str2+str1ShowMessage('str3='+IntToStr(Integer(str3)));str3 := str3+str1;ShowMessage('str3='+IntToStr(Integer(str3)));
end;

通过比较str3赋值前后指向堆的地址,发现str3前后的地址不一样,可以知道delphi中的string间加号操作符会内部申请一片空间,然后将右边的字符串拷贝过去。 而如果 只是str3:=str1;我们会发现str3指向的地址通str1指向的地址一样,其实只是增加了str1指向字符串的引用,当str1[1]:=#65;这时,str1指向的地址将会发生改变,str3指向的地址改变,这就是的delphi的 copy-on-write机制。 下面我们再来看第二个实验。

实验二:

varstr4:string;
beginwhile True dobeginGetMem(str4, 1024*1024 );FreeMem(str4)end;
end;

这时我们去观察windows任务管理其中的页面错误那一选项,我们会发现,页面的错误量会剧增。

把1024*1024换成小一点,1024*10,这是我们会发现页面错误数增长的慢一些。继续减小,当减小为1024*4时,我们发现,页面错误没有增长了。

我们可以得出结论,当申请大于页面的内存时(猜测),会产生页面错误。

所以程序中出现大量页面错误,是因为拼接的sql语句过长,超过十几K,而且有大量拼接,导致程序不断的申请内存进行字符串拷贝,最终导致页面错误暴涨。

对于分配大内存会产生页面错误的原因还未弄清楚,先附上一图:

 

 

转载于:https://www.cnblogs.com/wust0801/archive/2013/01/31/2888214.html

http://www.jmfq.cn/news/5100535.html

相关文章:

  • 专业品牌设计网站建设/站长工具免费
  • 互动网站建设公司/百度seo关键词优化排行
  • 移动端 pc网站开发/安卓优化大师老版本
  • wordpress淘宝插件下载/安卓aso优化工具
  • cpa诱导网站怎么做/广西壮族自治区
  • 网站制作目的/百度app官方正式版
  • 做钓鱼网站违法吗/html网页制作步骤
  • 有没有做羞羞的网站/关键词歌词完整版
  • 简单电子商务网站开发/企业网络推广方案
  • 石家庄百度关键词搜索/知名的搜索引擎优化
  • 百度站长平台快速收录怎么弄/企业网站模板免费
  • 网页游戏宣传片排行榜/网站seo应用
  • 时间轴网站设计/搜索引擎关键词快速优化
  • wordpress 管理登录/平原县网站seo优化排名
  • 做动态网站的总结/互联网广告优化
  • 天气预报网站开发/广州品牌营销服务
  • 倒v是网站设置的还是作家自己/seo整站优化技术培训
  • 软件应用下载安装/seo网站推广与优化方案
  • 内部网站开发/域名seo查询
  • 电子商务网站规划与建设摘要/网站关键词搜索排名
  • 江西医疗网站建设/百度seo公司一路火
  • 天津建设工程信息网客服电话/信息流优化师面试常见问题
  • 自家电脑做网站服务器w7花生壳/营销策划与运营团队
  • 网站建设方案ppt模板/自媒体有哪些平台
  • 优秀网站建设设计/网络营销公司哪家好
  • 网站开发工具简介/百度注册页面
  • 做美女网站流量/疫情最新消息今天封城了
  • 网站建设要咨询哪些内容/百搜科技
  • 潍坊网站建设服务/seo大牛
  • 专门做搜索种子的网站/网络软件开发