一次Java垃圾收集调优实战 - 企业应用 - Java - ITeye论坛
Parallel收集高达1秒的暂停时间基本不可忍受,所以选择CMS收集器。
在被压测的Mule 2.0应用里,每秒都有大约400M的海量短命对象产生:
- 因为默认60M的新生代太小了,频繁发生minor gc,大约0.2秒就进行一次。
- 因为CMS收集器中MaxTenuringThreshold(生代对象撑过过多少次minor gc才进入年老代的设置)默认0,存活的临时对象不经过Survivor区直接进入年老代,不久就占满年老代发生full gc。
对这两个参数的调优,既要改善上面两种情况,又要避免新生代过大,复制次数过多造成minor gc的暂停时间过长。
- 使用-Xmn调到1/3 总内存。观察后设置-Xmn500M,新生代实际约460m。(用-XX:NewRatio设置无效,只能用 -Xmn)。
- 添加-XX:+PrintTenuringDistribution 参数观察各个Age的对象总大小,观察后设置-XX:MaxTenuringThreshold=5。
优化后,大约1.1秒才发生一次minor gc,且速度依然保持在15-20ms之间。同时年老代的增长速度大大减缓,很久才发生一次full gc,
参数定稿:
-server -Xms1024m -Xmx1024m -Xmn500m -XX:+UseConcMarkSweepGC -XX:MaxTenuringThreshold=5 -XX:+ExplicitGCInvokesConcurrent
从 Google Play 微信用户评价看移动应用设计
今天手机连上WIFI网络后收到微信的更新通知,进入Google play市场后无意中看到了一些非常有意思的微信用户评价,这对移动应用产品设计和软件开发或许有参考价值,这里我试图摘录并从中总结一下目前移动应用设计及开发需注意的几点。以下是我从Google Play 微信用户评价中连续摘取的2月6日到2月7日的16条信息:
张帆 - 2013年2月6日 - SEMC Xperia Arc S,4.5 版
最恶心的就是要求权限太多,还有,越来越臃肿!!!那么多无谓的多余的自以为所谓很炫的功能,除了脑残爱用,谁会去用?
想點??又點姐!!!講咗又聽!聽咗又唔改!!!改咗唔好!
Malone Ma - 2013年2月6日 - Samsung Galaxy S,4.5 版
太大了,快20兆的大app了… 还是核心功能做简做精好,不同核心功能分离成多个app,开发人员分组专攻,用户也按需选择。现在的情况是,不论一个用户用到全部功能的几成,都要安装一个大app,还要给出超多权限…
尼玛啊。。我的聊天记录啊。。。rt。更4.5后最近半年多的聊天记录全部消失,竟然看到去年5月的记录,想要升级尝鲜的孩子们一定备份好数据,否则后果自负。。。。降级恢复坐等更新修复。。。
改變後大進步,可以選擇通知鈴聲,可以個別選擇不同聊天室有冇新訊息通知提醒,極讚。
邱永鑫 - 2013年2月6日 - HTC Sensation 4G,4.5 版
需要再改善,更新后完全档机了!又要从新卸载安装,好麻烦!
劉維智 - 2013年2月6日 - HTC Sensation XL,4.5 版
WeChat Good,使用起來,真的很方便,難怪在大陸地區相當盛行此軟體。
Zhen Dee - 2013年2月6日 - HTC Desire HD,4.5 版
爛到爆呀,費電,信息第二天才到,還收到一大堆廣告,敢快卸了吧
陳蔚林 - 2013年2月6日 - Samsung Galaxy S,4.5 版
經常自己登出,成日自己登出!攪到我收唔:到朋友訊息! 我係用fb acct login的
Lin Hero - 2013年2月6日 - HTC Desire HD,4.5 版
贊,好用!更新後功能更優,還有多方對講機功能
Bo Bi - 2013年2月7日 - Samsung Galaxy S2,4.5 版
收不到訊息~~~,雖然好用 可是更新後根本收不到訊息 過了好久才收到o_O
Vincent Wu - 2013年2月7日 - Samsung Galaxy S3,4.5 版
没太多改善。群聊人数依然只有40,没有“爆料”说的像YY的功能,有些失望。
Alex Lam - 2013年2月6日 - Samsung Galaxy Nexus,4.5 版
權限問題,點解要咁多權限?到底係程式需要,定係方便中方收集個人資
程天吴 - 2013年2月7日 - Samsung Galaxy Nexus,4.5 版
有这么脑残的更新吗?之前所有聊天记录全没了,做软件的时候不能长点脑子?就算要全清不能先警告下?
聊天记录,更新之后聊天记录全没了!!这是在闹哪样!!没备份的有办法恢复吗?
Google 用户 - 2013年2月7日 - Samsung Galaxy S3,4.5 版
聊天记录,如题,想更新的朋友注意了,更新以后会没有聊天记录。而且没有任何提示。
再次说明上面是我连续摘取的,并没有特意挑选个别的用户评价。我们从微信用户的评价中,可以总结出来以下几点建议供产品经理参考:
不能开放太多权限,尽可能缩小开放手机权限范围:别以为中国用户不考虑这个问题,评价中有多个用户反感开放太多权限,如今手机是太重要的个人隐私,各种网上支付、验证、联系人、地理位置等等都在上面,没有管好权限,总有一天再大的产品也可能会死亡。
不能太笨重太庞大:最新版本微信安装软件差不多19M,运行微信看个人数据量至少需要19M内存,完全重新启动需要6秒,而打开一个网页只需要1秒。同时,大应用也通常需要耗费更多CPU,更耗电。有用户给出了建议,核心功能应该做简做精。
尽量不要启动后台Service服务:当然对于微信也许不可能,微信的Service服务也许不仅仅是推送消息,可能还有其他动作。我曾经看到一Galaxy Nexus手机用户居然连滑动桌面都很慢,都是那些后台服务惹得祸。
不能出现大BUG:有多名用户反映升级后丢失聊天记录,宕机,收不到消息。其实这也和微信做得太大太臃肿有关。
虽然以上是热门应用微信用户的评价,但这不仅仅是对微信的设计开发有价值,而且对任何小众的和其他热门移动应用有参考价值,希望有产品经理以及主导产品命运的大佬们能看到。如果按照这样下去,不仅仅那些大、全、重的微信们没法发展下去,其实也给了其他轻、小、快产品一条出路。
Install guide | Kagilum, an Agile Company
1、安装MYSQL,并创建icescrum数据库
2、配置启动参数:
Config file (see the Settings section)
-Dicescrum_config_location=/path/to/dir/where/i/can/write/config.groovy
Maximum Java heap size (at least 512 Mo)
-Xmx512m
Maximum Permanent Generation size (at least 256 Mo)
-XX:MaxPermSize=256m
3、下载icescrum.war
4、新建config.groovy文件,输入内容,修改配置:
grails.serverURL = http://localhost:8080/icescrum
dataSource.driverClassName = com.mysql.jdbc.Driver
dataSource.dialect = org.hibernate.dialect.MySQL5InnoDBDialect
dataSource.url = jdbc:mysql://localhost:3306/icescrum?useUnicode=true&characterEncoding=utf8
dataSource.username = root
dataSource.password = root
5、启动服务器
- Tomcat 7 (7.0.23 or greater), recommended: you need to remove the tomcatDir/lib/tomcat-jdbc.jar library.
- Tomcat 6 (6.29 or greater): you need to add the geronimo-servlet_3.0_spec-1.0.jar library to the tomcatDir/lib/directory.
