`
javamonkey
  • 浏览: 171186 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论
文章列表
性能tuning和性能troubleshooting是有区别的。这次应该算是后者。因为系统很慢,每秒只能处理20多笔请求,用sar查看CPU利用率,只有2%。再用sar看了看磁盘,也不忙。相关数据库系统,第三方模拟系统都正常。压力机用的是Jmeter,是HTTP报文应该没有啥问题。那问题焦点就锁定在程序上。   首先在程序的主路径上都打上日志,确定每个模块的执行时间点在哪儿。很快就发现请求在入队列缓存后,再出队列,居然要4秒时间。用JDK自带的Concurrent 队列,实际用不了一毫秒就能完成,为什么在我们程序里需要4秒?   一开始怀疑入队列入的慢。查看代码,一切正常,入队列逻辑很简单,不 ...
首先申明一下,本人不是专门搞ExtJS的 每个页面都可以使用俩个自定义的JS作为使用ExtJS补充 ui-style.js,主要是覆盖ExtJS默认的属性,如日期格式默认是mm/yy/dd,可以改成yy-mm-dd,如下内容供参考 Ext.form.Field.prototype.msgTarget = 'under'; Ext.form.FormPanel.prototype.labelWidth= 80; Ext.form.FormPanel.prototype.labelAlign='left'; Ext.form.BasicForm.prototype.waitTit ...
(最新修改:覆盖renderAll方法,使得hidden类型的控件不布局) 通过不懈的google,终于还是在Extjs上找到了tableform 布局的代码,这可以终结网上大部分通过hbox,或者column来布局form 的代码例子了。    先看一个例子    var form = new Ext.form.FormPanel({ renderTo:'content', layout:'tableform', width:600, frame:true, title:'test', layoutConfig: { columns: 2 },                ...
      为了把我的想法简化成一俩个词,我已经想了很久,最初命名为replace2,意思是指可以在配置文件或者任何文本文件中加上特定的符号,以供replace2在运行的时候修改这些配置文件,但同时又不影响原文件的语义。     譬 ...
   跟有的架构师打交道时间长了,发现有的架构师特别爱拿别人的东西封装抽象一下,甚至每个项目的方方面面都言必封装抽象。举个极端例子来说。都知道Java对象都继承于java.lang.Object,有的的架构师,通常写一个MyObject(继承Object),然后要求开发人员的类都继承此类。    封装抽象癖好带来过度设计,从而引发学习难,开发难,调试难,运行慢,以及更难扩展和适应变化。这些癖好原因我可以归纳为架构师的几个如下问题。    1 妄图解决扩展性问题。 由于需求不清楚,或者架构师对需求不完全理解,他需要通过抽象或者封装来适应将来的变化。然而,就我个人经验来说,即使不抽象和封装,一定 ...
    在设计系统的时候,一直在同过度抽象派做斗争,坦然的说,抽象设计,是一个硬币的俩面,即是一个冒险而有趣的事情。但有可能又是根本不需要去做的事情。如何制止过度抽象和设计,目前我还没有看到成熟的经验和理论。     基本上,从我的观察来看,抽象越大,实现难度越大,到了一定拐点,将是指数增长。 抽象越大,扩展性也越好,但到了一定拐点。扩展性将增加的很缓慢。如下俩个图         上面俩个图都写画了拐点,但依照我的经验,实际情况并不真的需要知道拐点在哪儿,只能能满足用户需求,又有较低程度的抽象,这样系统通常都是容易设计和实现的    
最近在考虑研究一下过度设计,先转载俩个网上的         大腕之过度设计        乙:    听说你们开发了一套国际先进水平的"Hello World" 程序?    甲:    是啊,我们在开发之前进行了大量的需求 ...
因为mxGraph对公布此破解不满,所以此帖不再列出mxGrahph破解细节。但如果有对html画拓扑图,流程图感兴趣的话,仍然有可替代的技术。有兴趣的话可以发邮件问我
  Cache能提高性能,大家都知道。但大家恐怕不知道,很多Cache深层次上讲,都是系统无可奈何的补救方法。比如以前开发EJB2的时候,有的应用服 务器实现方式提供EJB Client 缓存功能,表面上比不缓存效果好不少,但从整体架构来看,因为用了这么重量级的分布式编程,性能相比其他而言,也差很多。很多类似的系统,开源产品都类似 这样,他们声称提供cache,便提供了性能,我们实际应该解读为提供了Cache,才使得性能勉强过得去。所以,一定要对声称使用了Cache的产品和项目保持性能警惕    在自己的系统中,Cache这东西,如果没有碰到性能瓶颈,千万不要随意使用, ...
   衡量系统性能有俩个指标,分别是响应和吞吐量。通常企业应用系统更看重的是吞吐量,即能否支持更多的用户访问,或者能处理更多的报文。记得JDK Concurrent API的一个主要设计目的就是可扩展性-在单CPU的情况下,性能不及synchronized.耗费的资源多于synchronized(创建了很多对 象,但synchronzied可用任何对象作为锁)。但在多CPU或者其他更多的资源下,JDK Concurrent API 能充分利用CPU资源,从而使你的应用有较大的吞吐量。譬如,Hashtable 读写都会锁,而ConcurretnHashMap在读的时候就 ...
   常听到有人说,把我们系统改造一下,支持异步协议,这样性能会提高。事情真的会是这样么?真相是是什么呢?    把你的系统比作一个桶,无论你用何种方法往你倒水,桶能装的水的容量是不变的。系统也类似,无论你用同步还是异步,吞吐量不会有本质变化。唯一的好处,同 步变成异步,可能会使客户端,服务端双方去掉不必要的同步等待。使得双方都能继续做其他的事情,也可以继续接收请求,也可以处理业务,然而系统容量就这么 多,不可能通过这方式转化来提供吞吐量。相反,如果异步设计不好,还可能导致性能(延迟,吞吐量)都有所降低,因为有时候异步实现也是有代价的。 那异步有什么好处呢?在假设服务器处理能力 ...
经常去铁血网站,知道飞机设计水平跟风洞技术密切相关的。可以说,造好飞机必须要好风洞。有的国家设计不出好飞机,原因就是他没有好的风洞设备,据说歼 10能出来,前提就是风洞技术有突破。在软件技术架构中,设计一个高性能的产品无疑与此相同,你必须有一个测试你的产品的方案和产品,而且这个测试方案也 许同样重要。 那我身边的俩个项目来说吧。一个是项目群需要的,这的每个项目都几乎用到了短信首发,原来是每个系统自己开发,现在要做整合,并在设计初期就考虑吞吐量, 这很好。然而,无论架构师如何多有经验,无论他们曾经设计过每天处理上亿的数据,他们的架构无论看起来多么合理,却无从验证,他们缺少一个类似的风洞。我 ...
本文综合了网上的几篇文章,揉捏到一块了,估计网上也有这种揉捏版本,如有雷同,纯属巧合   越来越多的Web开发采用了JS库,如Extjs,这样的好处是开发效率高,界面可用性高,而且好看(尤其对于 没有美工的团队来说,它尤其合适)。但问题是通常这样的类库连同他带的CSS文件都比较大,通常有500k-600k . 用户第一次访问的时候,会等待较长时间.如何让用户感觉访问起来很快呢?可以使用如下办法。   1. JS文本压缩,很多工具头提供压缩JS文件,如去掉空格和回车符号,去掉注释。   2. 向Extjs这样的库即使压缩了也很多,可以配置服务器端的压缩功能,压缩成gzip, ...
<script> allkey=allkey+&quot;6a3227d9848056e238012ffe_&quot;; </script>   Liferay  Portal在产品模式和开发模式下运行不太一样,在开发时,最好关注一下如下参数,具体解释可在Portal.property设置   #调试Javascript,CSS javascript.fast.load=false theme.css.fast.load=false schema.run.enabled=false index.on.startup=false ...
  如题,原来在baidu上的是技术和生活混在一起,随着孩子大了,生活越来越丰富,因此想把baidu作为主要生活博客。这放些技术文章,是再适合不过了,探讨技术,交些朋友,很好  
Global site tag (gtag.js) - Google Analytics