http://www.perlmonks.org?node_id=276025


in reply to Out-Of-Date Optimizations? New Idioms? RAM vs. CPU

Unfortunately, for most algorithms, the nature of perl 5 and the way memory is allocated pretty much preclude attempting to code algorithms so that they can make use of the optimisations available through the presence of large L1 and L2 caches. If you don't control the allocation of memory, you have little chance of utilising the benefits that can accrue from processor caches, except accidentally.

I've recently been rediscovering the art (and joy) of coding stuff using macro assembler. Full-blown windows GUI applications in executables of less that 20k, and memory footprints even smaller than typical by an even greater margin. Processing speeds that take your breath away even on my lowly 233Mhz. The one area that requires a completely new mindset from the last time I used assembler, is trying to utilise caching and pipelining to good effect. It's a whole new art that simple didn't exist the last time I played with this stuff.


Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"When I'm working on a problem, I never think about beauty. I think only how to solve the problem. But when I have finished, if the solution is not beautiful, I know it is wrong." -Richard Buckminster Fuller

  • Comment on Re: Out Of Date Optimizations? New Idioms?

Replies are listed 'Best First'.
Re: Re: Out Of Date Optimizations? New Idioms?
by hsmyers (Canon) on Jul 20, 2003 at 20:45 UTC
    Under the heading of 'Nothing new under the sun', I'd point out that both caches and pipelines have been around a very long time---but you knew that! I have to admit that it is a hell of lot of fun being able to play around with optimization techniques like this on hardware that I can actually afford!!

    --hsm

    "Never try to teach a pig to sing...it wastes your time and it annoys the pig."
Re: Re: Out Of Date Optimizations? New Idioms?
by Anonymous Monk on Jul 20, 2003 at 23:02 UTC
    I've recently been rediscovering the art (and joy) of coding stuff using macro assembler. Full-blown windows GUI applications in executables of less that 20k, and memory footprints even smaller than typical by an even greater margin. Processing speeds that take your breath away even on my lowly 233Mhz.

    How would one get started on this? Thanks.

      Google for "MASM v8 download" and read a lot.


      Examine what is said, not who speaks.
      "Efficiency is intelligent laziness." -David Dunham
      "When I'm working on a problem, I never think about beauty. I think only how to solve the problem. But when I have finished, if the solution is not beautiful, I know it is wrong." -Richard Buckminster Fuller

Re:^2 Out Of Date Optimizations? New Idioms?
by Tommy (Chaplain) on Jul 21, 2003 at 19:42 UTC

    Very interesting! Thank you for the comments. I'll have to play around with it now!

    --
    Tommy Butler, a.k.a. Tommy