﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-轻盈小刀-LUA-随笔分类-心得</title><link>http://www.cppblog.com/wonder/category/5736.html</link><description>突破C++的局限，让编程语言大同</description><language>zh-cn</language><lastBuildDate>Fri, 23 May 2008 17:02:50 GMT</lastBuildDate><pubDate>Fri, 23 May 2008 17:02:50 GMT</pubDate><ttl>60</ttl><item><title>挖虫日记 01.17</title><link>http://www.cppblog.com/wonder/archive/2008/01/17/41339.html</link><dc:creator>绝对在乎你</dc:creator><author>绝对在乎你</author><pubDate>Thu, 17 Jan 2008 07:24:00 GMT</pubDate><guid>http://www.cppblog.com/wonder/archive/2008/01/17/41339.html</guid><wfw:comment>http://www.cppblog.com/wonder/comments/41339.html</wfw:comment><comments>http://www.cppblog.com/wonder/archive/2008/01/17/41339.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wonder/comments/commentRss/41339.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wonder/services/trackbacks/41339.html</trackback:ping><description><![CDATA[经过昨天的再次日志的详细记录，把线程处理中的请求包记录下来，发现有比较大的共性，那就是出问题的请求都是用户登录的请求，后台仔细检查这个请求的处理过程，发现有一个大问题在里面：<br>&nbsp;&nbsp;&nbsp;1。应用程序在特定的配置下，会记录下每个用户的登录信息（不只是当前用户，而是登录过的所有用户）<br>&nbsp;&nbsp; 2.在新用户登录的时候，会检查1中记录的所有用户信息的状态<br>这样就造成一个大问题了，随着用户的不断登录登出，程序中积累的用户信息越来越多，而如果这时候同时有大量用户登录，每次登陆的时候都去循环检查所有用户信息，这样需要做的工作就巨大无比了。<br><br>现在的改进是：<br>&nbsp;&nbsp;&nbsp;1.改每次用户登录检查为每隔30秒循环检查<br>&nbsp;&nbsp; 2.清理不需要的用户信息，避免出现保存的用户信息量过大。<br>&nbsp;&nbsp; 3.使用线程安全的map对象做数据保存<br><br>结果：<br>&nbsp;&nbsp;&nbsp;今日的用户数量和前几天差不多，高峰的时候也是平均并发3000多，一整天没有出现任何问题。基本确认就是该问题导致的。
<img src ="http://www.cppblog.com/wonder/aggbug/41339.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wonder/" target="_blank">绝对在乎你</a> 2008-01-17 15:24 <a href="http://www.cppblog.com/wonder/archive/2008/01/17/41339.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>挖虫日记 11.15</title><link>http://www.cppblog.com/wonder/archive/2008/01/15/41204.html</link><dc:creator>绝对在乎你</dc:creator><author>绝对在乎你</author><pubDate>Tue, 15 Jan 2008 09:50:00 GMT</pubDate><guid>http://www.cppblog.com/wonder/archive/2008/01/15/41204.html</guid><wfw:comment>http://www.cppblog.com/wonder/comments/41204.html</wfw:comment><comments>http://www.cppblog.com/wonder/archive/2008/01/15/41204.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wonder/comments/commentRss/41204.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wonder/services/trackbacks/41204.html</trackback:ping><description><![CDATA[先描述一下现象：<br>&nbsp;环境：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一个机房，均衡后带20台服务器，并发峰值大概在7万不到一点，平均下来一台服务器3000多并发<br>现象：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 20台服务器会随机出现应用服务器程序把cpu打满的情况，而正常情况下，3000并发的时候，应用服务器的cpu不超过10%，在cpu满的情况下程序基本上停止提供服务器，只有重启才能解决。<br>&nbsp;&nbsp;&nbsp;&nbsp; 开始的时候，20台服务器的程序一模一样，会随机有部分服务器出现情况。<br>&nbsp;&nbsp;&nbsp;&nbsp; 现在换了一半的服务器，测试新程序。<br><br>昨天通过系统自带的性能监视器，将占用cpu的线程找出来了。在这部分线程池的处理过程中，有循环的地方都加了数量判断，防止出现死循环。<br><br>今天问题仍然出现，新的老的程序上都出现过，出现的情况也不尽相同，有并发在1500左右，有3000左右。<br>没有出问题的并发都在3000上下，所以单纯说是并发造成的，可能不准确。最大的可能还是服务器遇到一个特殊的数据导致处理的错误，但是还有一点比较奇怪的是，有线程繁忙的时候，很快就会有该线程池中的其他线程也繁忙起来，难道异常数据出现的频率在这个点上如此之高？？<br>今天下午的修改是：<br>&nbsp;&nbsp;&nbsp;在单独的一个线程中来监视出现问题的线程池中的线程的状态，如果发现对单个请求的处理时间过长，那么记录下当前线程中的状态，希望能抓到究竟是什么情况下导致的问题？同时出现这种情况的时候，结束当前线程，重启一个线程放入线程池中，保证以下的工作正常处理。<br><br>&nbsp;&nbsp; 结果如何，明日再观察! 
<img src ="http://www.cppblog.com/wonder/aggbug/41204.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wonder/" target="_blank">绝对在乎你</a> 2008-01-15 17:50 <a href="http://www.cppblog.com/wonder/archive/2008/01/15/41204.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>给windows程序添加一个标准控制台</title><link>http://www.cppblog.com/wonder/archive/2007/12/27/39717.html</link><dc:creator>绝对在乎你</dc:creator><author>绝对在乎你</author><pubDate>Thu, 27 Dec 2007 04:49:00 GMT</pubDate><guid>http://www.cppblog.com/wonder/archive/2007/12/27/39717.html</guid><wfw:comment>http://www.cppblog.com/wonder/comments/39717.html</wfw:comment><comments>http://www.cppblog.com/wonder/archive/2007/12/27/39717.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wonder/comments/commentRss/39717.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wonder/services/trackbacks/39717.html</trackback:ping><description><![CDATA[在程序初始化代码里添加两句 <br>AllocConsole(); //打开控制台窗口<br>freopen("CON", "w", stdout);&nbsp; //将标准输出重定向到控制台窗口上如果要接受用户输入的话把标准输入也重定向一下。 
<img src ="http://www.cppblog.com/wonder/aggbug/39717.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wonder/" target="_blank">绝对在乎你</a> 2007-12-27 12:49 <a href="http://www.cppblog.com/wonder/archive/2007/12/27/39717.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>GDI 中曲线的画法</title><link>http://www.cppblog.com/wonder/archive/2007/12/23/39376.html</link><dc:creator>绝对在乎你</dc:creator><author>绝对在乎你</author><pubDate>Sun, 23 Dec 2007 09:26:00 GMT</pubDate><guid>http://www.cppblog.com/wonder/archive/2007/12/23/39376.html</guid><wfw:comment>http://www.cppblog.com/wonder/comments/39376.html</wfw:comment><comments>http://www.cppblog.com/wonder/archive/2007/12/23/39376.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wonder/comments/commentRss/39376.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wonder/services/trackbacks/39376.html</trackback:ping><description><![CDATA[&nbsp;<br>在windows的GDI中，如果需要画非常优美的曲线，那么最适合用PolyBezier函数，通过4个点，<br>起点，起点控制点、终点控制点和终点，可以得到一条非常漂亮的曲线，比自己去算弧度<br>好多了。
<img src ="http://www.cppblog.com/wonder/aggbug/39376.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wonder/" target="_blank">绝对在乎你</a> 2007-12-23 17:26 <a href="http://www.cppblog.com/wonder/archive/2007/12/23/39376.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>3.5.2sqlite 关于left join处理的变化</title><link>http://www.cppblog.com/wonder/archive/2007/12/10/38151.html</link><dc:creator>绝对在乎你</dc:creator><author>绝对在乎你</author><pubDate>Mon, 10 Dec 2007 03:26:00 GMT</pubDate><guid>http://www.cppblog.com/wonder/archive/2007/12/10/38151.html</guid><wfw:comment>http://www.cppblog.com/wonder/comments/38151.html</wfw:comment><comments>http://www.cppblog.com/wonder/archive/2007/12/10/38151.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/wonder/comments/commentRss/38151.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/wonder/services/trackbacks/38151.html</trackback:ping><description><![CDATA[<br>相同的left join语句在3.2.8和3.5.2中的处理不相同。
<img src ="http://www.cppblog.com/wonder/aggbug/38151.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/wonder/" target="_blank">绝对在乎你</a> 2007-12-10 11:26 <a href="http://www.cppblog.com/wonder/archive/2007/12/10/38151.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>