小编noa*_*hlz的帖子

UseCompressedOops JVM标志做什么以及何时应该使用它?

热点JVM标志-XX:+UseCompressedOops做什么以及何时应该使用它?在64位Java实例上使用它时(不使用它),我会看到什么样的性能和内存使用差异?

java memory jvm jvm-hotspot

78
推荐指数
1
解决办法
4万
查看次数

减少Java"预热"时间的技术或实用程序?

我支持需要低延迟(每个消息处理<300微秒)的Java消息传递应用程序.但是,我们的分析显示Sun Java虚拟机最初运行缓慢,并且在前5,000条消息之后加速.前5,000条消息的延迟为1-4毫秒.在大约前5,000个后,后续消息的延迟约为250微秒,偶尔会有异常值.

通常理解这是Java应用程序的典型行为.但是,从业务角度来看,告诉客户他们必须等待JVM"热身"才能看到他们所要求的性能是不可接受的.在处理第一个客户消息之前,应用程序需要"预热"

JVM是Sun 1.6.0 update 4.

克服这个问题的想法:

  1. JVM设置,例如-XX:CompileThreshold =
  2. 添加组件以在启动时"预热"应用程序,例如通过应用程序发送"假消息".
  3. 在应用程序启动时静态加载应用程序和JDK类,以便在处理客户消息时不从JAR加载类.
  4. 一些实用程序或Java代理完成上述两个想法中的一个或两个,这样我就不必重新发明轮子了.

注意:显然,对于这个解决方案,我正在考虑所有因素,包括芯片拱,磁盘类型和配置以及操作系统设置.但是,对于这个问题,我想集中讨论如何优化Java应用程序并最大限度地减少"预热"时间.

java performance messaging

40
推荐指数
3
解决办法
2万
查看次数

Destructure parameter of a Clojure function while keeping the original value.

Can you destructure a function parameter but still have the original available for use? The way I'm doing it now is just using a let form inside the function body, but I wondering if there was a terser way of doing it.

clojure destructuring

24
推荐指数
1
解决办法
8141
查看次数

vimscript调用与执行

在vimscript中,call和之间有什么区别execute?在什么情况下/用例我应该使用哪一个?

(免责声明,我知道vim中提供了广泛的在线帮助 - 我正在寻求对这个具体问题的简明回答).

vim viml

24
推荐指数
2
解决办法
1万
查看次数

Pedestal与其他Clojure Web框架相比有哪些功能?

最近,Relevance宣布了Coudjure的新Web框架Pedestal.

在功能,应用程序开发的简易性,开发人员工具等方面,该框架如何与其他Clojure Web框架(如Compojure,Webjure,Conjure,Mustache等)进行比较.

请参阅Clojure Web框架的比较

clojure web-frameworks pedestal

20
推荐指数
4
解决办法
7602
查看次数

是否可以在C(而不是C++)中编写node.js扩展名?

一个快速的谷歌搜索产生至少一个为node.js 编写C++"Hello World"的教程,但目前还不清楚是否可以仅使用C编写这样的扩展.假设它有可能,我将面临哪些挑战/限制?

c node.js

18
推荐指数
4
解决办法
1万
查看次数

什么是最短的Spring Framework类名(包括包)?

许多人 弃权找到了幽默org.springframework.aop.framework.AbstractSingletonProxyFactoryBean.

这让我想知道:什么是最短的类名,包括Spring Framework 3.1.x生态系统中的包(在此列出:http://www.springsource.org/projects)?

spring naming

14
推荐指数
1
解决办法
6585
查看次数

调试远程Java应用程序时,IntelliJ会逐步执行错误的行

我尝试使用Intellij 远程调试liquibase项目的maven插件.问题是IDEA突出了错误的源代码行,我无法理解为什么.我尝试调试的源代码不受影响.我从我在Intellij中使用的源代码中手动构建并安装了我的本地maven存储库中的插件.我的Intellij版本11.1.3和maven版本3.0.4在Ubuntu 12.04上运行.

为了调试maven插件,我使用了mvnDebugcomand.如果有人对什么是错误有任何想法,请给我一些建议.如果您需要更多信息,请询问.我不习惯远程调试(实际上这是我第二次这样做)所以我可能会删除你需要的一些信息.

remote-debugging intellij-idea liquibase maven

13
推荐指数
1
解决办法
7552
查看次数

如何在启动repl时默认加载ns

我正在使用lein2.我想在repl启动时默认加载一些ns.是否可以在project.clj中指定应该加载的ns,何时为该项目执行lein2 repl?

clojure leiningen

12
推荐指数
2
解决办法
2850
查看次数

内存映射文件的性能/稳定性 - Native或MappedByteBuffer - 与普通的'FileOutputStream相比

我支持使用平面文件(纯文本)进行持久化的旧Java应用程序.由于应用程序的性质,这些文件的大小可以达到每天100s MB,并且应用程序性能的限制因素通常是文件IO.目前,该应用程序使用普通的'java.io.FileOutputStream将数据写入磁盘.

最近,我们有几个开发人员声称使用内存映射文件,在本机代码(C/C++)中实现并通过JNI访问,将提供更高的性能.但是,FileOutputStream已经为其核心方法使用本机方法(即write(byte [])),因此在没有硬数据或至少是轶事证据的情况下,它看起来很脆弱.

我有几个问题:

  1. 这种断言真的如此吗? 与Java的FileOutputStream相比,内存映射文件是否总能提供更快的IO?

  2. 从FileChannel访问的MappedByteBuffer类是否提供与通过JNI访问的本机内存映射文件库相同的功能?什么是MappedByteBuffer缺乏可能导致您使用JNI解决方案?

  3. 在生产应用程序中将内存映射文件用于磁盘IO有哪些风险?也就是说,具有连续正常运行时间且重启次数最少的应用程序(每月一次,最多).来自生产应用程序(Java或其他)的真实轶事是首选.

问题#3是很重要的-我可以回答这个问题,我自己部分通过写一个"玩具"的应用程序,使用逆足IO上述各种选项,测试,但通过张贴到,所以我希望能为现实世界的趣闻轶事/数据来啃.

[编辑]澄清 - 每天操作,应用程序创建多个文件,大小从100MB到1Gig.总的来说,应用程序可能每天写出多个数据.

java performance file-io java-native-interface production

11
推荐指数
2
解决办法
8295
查看次数