03 2014 档案
摘要:同事用java开发了一个系统,其中有一个功能是下载大约10万笔数据到Excel中。当上线后,很多用户反映下载数据量大的时候就不能成功,但有时可以,所以结论就是系统不稳定,这个问题拖了很久没有解决。在与这个系统的开发人员看了下代码后,知道下载excel用的是apache中的POI组件。原来的代码逻辑是将要下载的数据整个从数据库捞出来,然后循环一笔笔地调用POI的API生成cell, row,全部完成了,再输出到客户端的流中。监控发现,一旦下载时,java虚机所占用的内存直线上升,且很久都不会降下来。所以判定为大数据保存在内存中,再生成excel对象这一过程占用了大量内存,当多个人并发这一功能时,
阅读全文
摘要:1. module应该是require方法中,上下文中的对象2. exports对象应该是上下文中引用module.exports的新对象3. exports.a = xxx 会将修改更新到module.exports对象中4. exports = xxx 直接改变了 exports的指向上面这4条揭示了这两个对象的本质。也就是说exports指向module.exports. 如果写exports.a =1, 意味着module.exports.a也等于1。但如果写成exports=function A(){}, 这个时候, module.exports与exports指的是不同的对象了。这
阅读全文
摘要:通过查找一些文章,得知,Task与Thread不可比。Task是为了利用多CPU多核的机制而将一个大任务不断分解成小任务,这些任务具体由哪一个线程或当前线程执行由OS来决定。如果你想自己控制由哪一个Thread执行,要么自己定议task的scheduling, 要么自己来创建Thread来执行代码。A "Task" is a piece of work that will execute, and complete at some point in the future.A "Thread" is how something gets executed.
阅读全文
摘要:1. 在Apache下建立新的web site a. $>cd /etc/apache2/ b. $>vi ports.conf 填加Listen 8090(注意不要打开8080,因为Tomcat使用了这个端口) c. $>cd sites-availabel d. $>cp default mysite e. $>vi mysite DocumentRoot /home/sdikerdong/www/ Options Indexes FollowSymLinks MultiViews AllowOverride All ...
阅读全文
摘要:当访问Monodevelop.com官网下载的安装包,安装后,发现并不是最新版。在OpenSuse下载的是3.0版本。根据官网的指示,可以自己下载源码进行编译。按官网的指引:1. $ git clone git://github.com/mono/monodevelop.git2. $ cd monodevelop3. $ ./configure. 注意可以加参数据 --select再次进行配置选项。 这里我就直接按了回车,即呆勾选了main.这一步执行时出现没有安装msgmerge。用cnf msgmerge. 系统提示要安装gettext-tools. 就直接按系统的提示安装即可。安装后,
阅读全文
摘要:如何在SUSE Linux 建立共享文件夹1./etc/samba/smb.conf 打开配置文档2.在文档的最后加上共享的文档夹/opt,下面是示例。nte143:/etc/samba # vi smb.conf[opt]guest ok=yespath=/optwritable=yes/opt为共享目录,这个目录需要先创建好,且赋予读取写入权限3.重起samba服务nte143:~ # service smb restartShutting down Samba SMB daemon doneStarting Samba SMB daemon ...
阅读全文