Location:Home > Scala基础 - 柯里化(Currying)及其应用

Scala基础 - 柯里化(Currying)及其应用

up vote 0 down vote favorite

Currently we have developed application using Java 6 based on windows 32bit(Dual core & 3G Ram). If we install into 64bit windows OS, does it will perform better because of the resources advantage that having in the 64bit(Same OS diff. bit)? The 64bit machine is having Quad core processor and Ram more than 4g. Is the any different for JVM between 32bit vs 64bit.

Thank you in advance for your feedback.

Extra info

I am doing Security Information Event management Sys.(SIEM) - log management. We have 4 important parts ,

  • Collector -to collect logs from devices/system,
  • Aggregator -To aggregate the syslog to be meta data for reporting,
  • Real Time Monitoring-To display realtime analisys report/charts and dashboard that must run every second
  • GUI - Struts2 apps. that runs the web GUI, log analytics, backup and other things

So far the most resources cpu and memory are used by 1-Collector, 2-RealTime, 3-Aggregator. Right now in 32bit, collector can recieved up to 2000logs per seconds. If more than that it will crash to memory heap. So we used tanuki software to auto restart back the collector service. We use the Tanuki to split the memory usage and auto restart once detected memory heap.

Our objective is to increase event per second from 2000logs to maximum if possible by using 64bit advantages. For the GC we let the Java handle automatically, more important we can process the more logs in 1 second without any problem.

java windows 64bit 32bit-64bit share | improve this question edited Sep 8 '11 at 7:28 asked Dec 1 '10 at 2:27 Joe Ijam 745 2 9 19 add a comment  | 

2 Answers 2

active oldest votes up vote 4 down vote accepted

Switching to a 64-bit JVM doesn't guarantee any performance differences. You will, however see a huge difference in the amount of RAM that can be allocated. On 32-bit Windows, the maximum amount of RAM that could be allocated for the heap maxed out at around 1.6 GB.

If you see a lot of swapping with your application on the 32-bit machine, then switching to the 64-bit machine and adding sufficient RAM is likely to improve your performance. You might also be able to make design choices that favor faster, but more memory hungry algorithms where such choices exist.

As of this writing, you will probably not see significant difference between running your app on a 32-bit JVM and a 64-bit JVM on the exact same hardware. Eventually, support for 32-bit operating systems and JVMs will probably be discontinued, but that's a different concern than performance.

I strongly recommend you start out by profiling your app first to see where your performance hot spots are.

It's a common misconception that 64-bit automatically means better performance than 32-bit. See e.g. this JVM faq and this MS Windows 7 FAQ.

share | improve this answer answered Dec 1 '10 at 2:51 Kim Burgaard 2,504 9 11      also keep in mind that 64-bit JVM will use about 1.5x memory (maybe more, depends on your app) so be sure to give it more memory. –  Denis Tulskiy Dec 1 '10 at 6:00 add a comment  |  up vote 1 down vote

It really depends on the nature of your application and where your performance bottlenecks are.

If you have relatively un-tuned garbage collection, and your application is latency sensitive (i.e. must respond to a user request such as an http request quickly), adding more memory can actually worsen your GC pauses.

Is your application multi-threaded, as most web servers are? If so, going from 2 to 4 cores will very likely help if you don't have significant locking / contention issues.

If you look into GC tuning, you might want to try parallel GC on the 4 core cpu. This can significantly reduce GC pause times while incurring some extra overhead. For a latency sensitive app I worked on this was definitely worth it.

Please feel free to reply with more info - we could use some context on your app, it's workload, in-memory working set, etc.

share | improve this answer answered Dec 1 '10 at 6:21 Noah 181 1 2      Refer extra info –  Joe Ijam Dec 1 '10 at 16:16 add a comment  | 

Your Answer

  draft saved draft discarded

Sign up or log in

Sign up using Google

Sign up using Facebook

Sign up using Email and Password

Post as a guest

Name Email

Post as a guest

Name Email discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged java windows 64bit 32bit-64bit or ask your own question.

Your Answer
(Ctrl+Enter To Post)   
    Copyright © 2015-2017 163JAVA.COM All Rights Reserved.