> I've seen a few different articles on the subject of measuring free > memory, I was wondering if there was a preferred approach to the > matter for a *nix system. > http://java.sun.com/javase/6/docs/api/java/lang/management/MemoryMXBean.html#getHeapMemoryUsage()
> And if I could measure memory consumption on > a per-thread level, if only for the purpose of monitoring/logging. > http://java.sun.com/javase/6/docs/api/java/lang/management/ThreadMXBean.html perhaps? On Wed, Apr 9, 2008 at 5:49 PM, Daniel Green <[EMAIL PROTECTED]> wrote: > > > First thing that comes to my mind is Thread.setPriority(), and then > > > just let the different tasks run concurrently but with different > > > priorities and let the OS take care of managing the system resources > > > (which is its primary function anyway.) > > > Two questions here. First, is there a way I can dynamically change > priority to maximize efficiency? Somehow detect resource consumption, > perhaps, and set as appropriate? Second, can Thread.suspend/resume > ever be used safely? Can any of such things can be controlled outside > of the thread? Ideally, the tasks will be written in a way that > doesn't need to take into consideration that such optimization is > occurring. It would also be helpful if I could pause a resource greedy > task and resume it when enough resources are available. Would there be > a safe way of doing this outside of the thread? This functionality > would be immensely useful. Okay, that was more than two questions... > I'm showing my green! > > > > Third thing that comes to mind, is to use the getSystemLoadAverage() > > method of the OperatingSystemMXBean as a threshold instead of the > > AtomicInteger: > http://java.sun.com/javase/6/docs/api/java/lang/management/OperatingSystemMXBean.html > > > Fantastic, this will save me from having to parse /proc/loadavg (at > least for this, except where getSystemLoadAverage is implemented). > > I've seen a few different articles on the subject of measuring free > memory, I was wondering if there was a preferred approach to the > matter for a *nix system. And if I could measure memory consumption on > a per-thread level, if only for the purpose of monitoring/logging. > > Are there any JVM languages that take advantage of such chances for > optimization in their libraries for concurrency? I know the Scala > Actor stuff uses Fork/Join for optimization (thank you P. Haller for > being a genius), but I was wondering what the other languages had to > offer. > > Bare with me, I'm by no means a Java expert so I apologize if some of > this is trivial. > > On Wed, Apr 9, 2008 at 2:44 AM, Christian Vest Hansen > > > <[EMAIL PROTECTED]> wrote: > > > > Third thing that comes to mind, is to use the getSystemLoadAverage() > > method of the OperatingSystemMXBean as a threshold instead of the > > AtomicInteger: > http://java.sun.com/javase/6/docs/api/java/lang/management/OperatingSystemMXBean.html > > > > > > > > On 4/9/08, Christian Vest Hansen <[EMAIL PROTECTED]> wrote: > > > First thing that comes to my mind is Thread.setPriority(), and then > > > just let the different tasks run concurrently but with different > > > priorities and let the OS take care of managing the system resources > > > (which is its primary function anyway.) > > > > > > Second thing that comes to mind is to keep a shared AtomicInteger that > > > holds the number of running important tasks, and then let the > > > unimportant tasks check every so often if the AI is below some > > > threashold, and only run if it is. > > > > > > > > > > > > On 4/9/08, Daniel Green <[EMAIL PROTECTED]> wrote: > > > > > > > > Hello, > > > > > > > > I need to determine, based on some set of criteria, whether the > > > > program should perform computation or wait for resources to free up. > > > > Ultimately, I am trying to maximize the power of concurrency on > > > > multi-core/processor systems and need to figure out at what point I > > > > become at risk of lowering the efficiency of other tasks. Now there > > > > are only a few metrics that I know how to obtain, so I'm hoping > > > > someone can fill in the cracks in my understanding. What I figured I > > > > would do is raise a red flag after a certain point, determined > either > > > > by a list of constant metric pairs or better yet, some kind of > > > > algorithm... I've never worked with this kind of thing before so I > > > > would greatly appreciate any sort of ideas, feedback, or help. > > > > > > > > What comes to mind immediately is memory consumption and the > > > > information that can be found in /proc/loadavg and /proc/meminfo on > a > > > > Unix system. I am not, at this time, supporting other environments > so > > > > it's alright if it's Unix specific. I imagine that this kind of task > > > > would inevitably have to be platform dependent. > > > > > > > > Thank you for at least reading this, > > > > Dan. > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > Venlig hilsen / Kind regards, > > > > > > Christian Vest Hansen. > > > > > > > > > -- > > Venlig hilsen / Kind regards, > > Christian Vest Hansen. > > > > > > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "JVM Languages" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/jvm-languages?hl=en -~----------~----~----~----~------~----~------~--~---
