博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2011年3月9日

摘要: 问题的产生: 我的WinForm程序中有一个用于更新主窗口的工作线程(worker thread),但文档中却提示我不能在多线程中调用这个form(为什么?),而事实上我在调用时程序常常会崩掉。请问如何从多线程中调用form中的方法呢? 解答: 每一个从Control类中派生出来的WinForm类(包括Control类)都是依靠底层Windows消息和一个消息泵循环(message pump loop)来执行的。消息循环都必须有一个相对应的线程,因为发送到一个window的消息实际上只会被发送到创建该window的线程中去。其结果是,即使提供了同步(synchronization),你也无法从 阅读全文

posted @ 2011-03-09 16:03 steve.z 阅读(406) 评论(0) 推荐(0)

摘要: BeginInvoke 方法真的是新开一个线程进行异步调用吗?参考以下代码:public delegate void treeinvoke();private void UpdateTreeView(){ MessageBox.Show(System.Threading.Thread.CurrentThread.Name);}private void button1_Click(object sender, System.EventArgs e){ System.Threading.Thread.CurrentThread.Name = "UIThread"; treeVi 阅读全文

posted @ 2011-03-09 16:01 steve.z 阅读(374) 评论(2) 推荐(0)

2011年2月16日

摘要: 著名的并发性能测试工具有QALoad、LoadRunner、Benchmark Factory 和Webstress 等 阅读全文

posted @ 2011-02-16 11:17 steve.z 阅读(323) 评论(0) 推荐(0)

2011年2月15日

摘要: First: Enter the hp site,http://www.hp.com/;Second: Input Load Runner in the search textbox, and then click 'search' buttonThird:: Choose and click the link:HPLoadRunnersoftware - HP - BTO SoftwareFourth:Choose and click the link in this location:Trial software»HP LoadRunner 11.00 EvaluationFi 阅读全文

posted @ 2011-02-15 10:59 steve.z 阅读(1063) 评论(0) 推荐(0)

摘要: 在之前的两篇文章中,基本上介绍了如何录制脚本和生成并发用户,同时还对测试报告中的几个图表做了简单的说明。今天这篇文章做为这个系列的最后一篇,将会介绍如何通过测试报告来查看系统的运行情况,找出影响性能的因素,以及如何去进行优化。 首先,看一下这张并发用户的图: 这是在优化之前我生成的测试报告的截图,通过这张图可以看到这个测试过程长达24分钟(这在之前的无数次测试中算是具有代表性的了),而并发用户峰值是从4--15分钟,持续时间近11分钟。就目前而言,其执行的测试时间和高峰持续时间肯定要比discuz(php)要差了不少,因为dz那边基本上也就是10多分钟就‘完活’了。这里 阅读全文

posted @ 2011-02-15 10:50 steve.z 阅读(250) 评论(0) 推荐(0)

摘要: 在上文中,介绍了如果录制脚本和设置脚本执行次数。如果经过调试脚本能够正常工作的话,就可以设置并发用户数并进行压力测试了。 首先我们通过脚本编辑界面上的“工具”菜单项,选择该菜单的第二项“Create Controller Scenario(创建控制场景)”,如下图: 这时,lr会弹出一个窗口,我们只要在select scenario type项中的number of vusers设置成1000,这样我们就可以用1000并发用户来测试我们上文中所执行的操作了,如下图: 注:之前在上文中设置脚本执行次数为5,这里又做了1000的并发用户,所以最终我们 阅读全文

posted @ 2011-02-15 10:48 steve.z 阅读(226) 评论(0) 推荐(0)

摘要: DiscuzNT3正式版发布已经有一段时间了,最近半年多来很少再写关于这个产品的技术文章了,一是时间,二是精力有限。不过在正式版发表之后,倒是有了些功夫,同时我们的一个商业客户在从2.6版本升级到3.0正式版之后,出了一个小插曲,导致不得不退回到2.6版本。因为这个客户的论坛访问量和发帖量比较大,平时在线人数5000,日发帖量在2-3万左右。所以出了一些性能上的问题,在大并发情况下,服务器响应超时,且在峰值时越发不稳定。之前我在公司内部用了tinyget做了一些简单的压力测试,发现了一些问题,但原因尚不明显,所以在公司会议上就有人提出使用loadruner来做一下压力测试,看看3.0产品的性能 阅读全文

posted @ 2011-02-15 10:44 steve.z 阅读(172) 评论(0) 推荐(0)

摘要: 有很多理由都能说明为什么我们应该写出清晰、可读性好的程序。最重要的一点,程序你只写一次,但以后会无数次的阅读。当你第二天回头来看你的代码时,你就要开始阅读它了。当你把代码拿给其他人看时,他必须阅读你的代码。因此,在编写时多花一点时间,你会在阅读它时节省大量的时间。  让我们看一些基本的编程技巧:尽量保持方法简短永远永远不要把同一个变量用于多个不同的目的使用自描述的变量名和方法名尽可能的把变量定义在靠近使用它的地方拒绝神秘数字友好的对待你的语言不要逆常规而行警惕过早优化积极重构测试过的程序不要过度沉迷于技巧通过习例学习新知  现在,让我们把每个小点展开来详细讲一下。  1. 尽量保持方法简短   阅读全文

posted @ 2011-02-15 09:41 steve.z 阅读(158) 评论(0) 推荐(1)

2011年2月14日

摘要: 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://monw3c.blogbus.com/logs/23488116.htmlDBA notes上果然好东西很多许多大型(只是访问量,而不是公司规模)的web 2.0的网站架构上面都有现在收集整理一下这种资料.向来可遇不可求啊WikiPedia 技术架构学习分享http://www.dbanotes.net/opensource/wikipedia_arch.htmlYouTube 的架构扩展http://www.dbanotes.net/opensource/youtube_web_arch.htmlInternet 阅读全文

posted @ 2011-02-14 09:07 steve.z 阅读(402) 评论(0) 推荐(1)

摘要: 一个小型的网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单。随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技术更是涉及面非常广,从硬件到软件、编程语言、数据库、WebServer、防火墙等各个领域都有了很高的要求,已经不是原来简单的html静态网站所能比拟的。  大型网站,比如门户网站,在面对大量用户访问、高并发请求方面,基本的解决方案集中在这样几个环节:使用高性能的服务器、高性能的数据库、高效率的编程语言、还有高性能的Web容器。 阅读全文

posted @ 2011-02-14 09:03 steve.z 阅读(3846) 评论(0) 推荐(2)