On 29 December 2011 19:59, Ricky Clarkson <[email protected]> wrote:

> Those ArchitectNotes are very interesting, but it seems difficult to
> apply that on the JVM, where the maximum heap you can have seems to
> depend more on physical than on virtual memory.
>
> If I was writing a Java program that would otherwise be shifting
> things between memory and disk how could I use his ideas?
> Memory-mapped files?


Indeed, it can be a good approach and I've done similar myself (especially
when native interop is required).  It can also cause excessive and
inappropriate thrashing of the GC; so let a profiler guide you, as always.
 You'll find the same basic principles used in EHCache's BigMemory - push
the cache off of the Java heap & allow the OS to manage paging for you.
 The wiki page also mentions some very important points about optimising to
make the best use of your processors' cache.

Instead of writing my own synopsis, I'll point you in the direction of
someone who's already written a *very* thorough evaluation of the pros/cons
of ByteBuffers and FileChannels, it's a nice bit of holiday reading :)

 http://www.kdgregory.com/index.php?page=java.byteBuffer







> On Thu, Dec 29, 2011 at 1:40 PM, Kevin Wright <[email protected]>
> wrote:
> > Not just the CPU!  It really helps to be aware of how cores interact,
> > caching, the memory controller, and how your operating system manages
> paging
> > and virtual memory.
> >
> > For an idea of this level of systems thinking, I still stand in awe of
> the
> > Varnish architecture notes as one of the best examples of its
> > kind: https://www.varnish-cache.org/trac/wiki/ArchitectNotes
> >
> > Sure, there's value in knowing about pipelining, branch prediction,
> Compare
> > and Swap vs Load Link/Store conditional, etc, etc.  But you'll still gain
> > more from familiarity with memory management and the garbage collector
> > first.
> >
> >
> > On 29 December 2011 16:23, Kirk Pepperdine <[email protected]>
> > wrote:
> >>
> >> it's a big list but I think this year will be about how make Java play
> >> better with the CPU…. which implies, we'll need to learn more about how
> CPUs
> >> really work. it's a trend that has been emerging for a while but really
> only
> >> at a high fluffy handwaving level. I find that people are starting to
> ask
> >> the deeper questions, how is this really working? How can we tell? What
> >> adjustments can we make to increase cooperation between app and CPU?
> >>
> >> Happy New Year,
> >> Kirk
> >>
> >> On 2011-12-29, at 2:34 PM, Ricky Clarkson wrote:
> >>
> >> > And/or try to apply some of what you learn in your job, obviously
> >> > being sure to involve your teammates/client as necessary.  That
> >> > doesn't necessarily mean using a different language, or switching
> >> > databases, but if you see a problem and you've met a possible solution
> >> > recently see if you can explore that.
> >> >
> >> > On Thu, Dec 29, 2011 at 10:02 AM, Thomas Jung
> >> > <[email protected]> wrote:
> >> >> Hi Rakesh,
> >> >>
> >> >> what a list! Learning stuff is important, but I don't think learning
> >> >> in a vacuum makes that much sense. Better think of things you cannot
> >> >> accomplish right now. Where you think you should improve.
> >> >>
> >> >> Some reading should be in the mix, but not more than half of the
> total
> >> >> time. Good books come with exercises that will take at least as much
> >> >> time as the actual reading.
> >> >>
> >> >> Do something rather than read about doing something. Start a project
> >> >> or work for a project. Spectacular failure here is better than
> perfect
> >> >> learning in theory.
> >> >>
> >> >> Thomas
> >> >>
> >> >> On Dec 29, 12:22 pm, Rakesh <[email protected]> wrote:
> >> >>> Hi folks,
> >> >>>
> >> >>> I've posted something similar in the past but more orientated
> towards
> >> >>> personal productivity using tools and techniques like GTD, etc.
> >> >>>
> >> >>> This time I want to get your thoughts on my current (completely
> >> >>> unrealistic) plan to become a better developer!!
> >> >>>
> >> >>> So, I need to learn new things and make sure I know stuff I should
> >> >>> already
> >> >>> know. I've divided up these areas into the following:
> >> >>>
> >> >>> *Existing Java*
> >> >>>
> >> >>>    - Go through the JCP book, plan to take the exam. Useful for
> >> >>> interviews
> >> >>>    more than day-to-day development.
> >> >>>
> >> >>> *New Java*
> >> >>>
> >> >>>    - Fully review and learn Apache Commons, JODA, Google stuff (like
> >> >>>    collections, guice), concurreny libraries, etc.
> >> >>>
> >> >>> *Frameworks*
> >> >>>
> >> >>>    - Learn Spring 3, Hibernate 4, Cucumber-jvm
> >> >>>
> >> >>> *Non Java*
> >> >>>
> >> >>>    - Oracle, MySQL, Ubuntu
> >> >>>
> >> >>> *Languages*
> >> >>>
> >> >>>    - Groovy, Scala, Clojure, Javascript/CoffeeScript.et al, Ruby
> >> >>>
> >> >>> *Books*
> >> >>>
> >> >>>    - Agile books, Clean coder (loads of others sitting on my
> Kindle).
> >> >>>
> >> >>> *Videos*
> >> >>>
> >> >>>    - Go through interesting talks on InfoQ, Parleys, TED
> >> >>>
> >> >>> My idea for doing this was to dedicate a day of the week to each and
> >> >>> maybe
> >> >>> 1-2 hours in a session. If I can fit stuff in during my commute
> (tough
> >> >>> as
> >> >>> its chock full already with podcasts) or at work (maybe 20 mins
> during
> >> >>> lunch or stay behind an extra 30 mins) then thats a bonus.
> >> >>>
> >> >>> However, I would really like to hear your views, not so much on the
> >> >>> content
> >> >>> of each, but more of how to manage so many things and deciding whats
> >> >>> important and how you guys stay up to date.
> >> >>>
> >> >>> Cheers
> >> >>>
> >> >>> R
> >> >>
>

-- 
You received this message because you are subscribed to the Google Groups "The 
Java Posse" 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/javaposse?hl=en.

Reply via email to