Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical

Re^3: Perl 5 Optimizing Compiler

by eyepopslikeamosquito (Chancellor)
on Aug 13, 2012 at 07:53 UTC ( #987064=note: print w/replies, xml ) Need Help??

in reply to Re^2: Perl 5 Optimizing Compiler
in thread Perl 5 Optimizing Compiler

I too would like to see perlcc revived and it appears that it is already being revived by Reini Urban on CPAN. What I think is way too ambitious, especially for the timeframe suggested, is the OP's stated performance goal of "making Perl run at speeds within an order of magnitude of optimized C".

Replies are listed 'Best First'.
Re^4: Perl 5 Optimizing Compiler
by rgiskard (Hermit) on Aug 13, 2012 at 08:16 UTC
    Right, well I too feel that premature optimization is the route to all evil. I personally would find it hard to compete with native C; however, I do recall Java having similar speed issues (it being non-natively compiled). Then (over the course of a decade) everyone swapped out boxes for VMs... Virtual Machines which, perhaps inspired by slowness, happened to use the speed which a Java program runs as a common benchmark. So everyone started optimizing their VMs to run Java programs quickly. We are now at that point where Java can run as fast (or faster) than a "native" application (clearly depending on your environment and how you define native). I didn't know Reini was doing something like this... am checking it out now.

      From Type system (wikipedia):

      Certain languages, for example Clojure, Common Lisp, or Cython, are dynamically typed by default, but allow this behaviour to be overridden through the use of explicit type hints that result in static typing. One reason to use such hints would be to achieve the performance benefits of static typing in performance-sensitive parts of code.

      So, to get close to (statically typed) Java in terms of speed, Perl 5 would need to make significant tweaks to its type system and the way it handles polymorphism, as indicated by chromatic's response. See also MJD article (2001), which explains why making Perl as fast as C is problematic.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://987064]
[Cosmic37]: now I have tried another blunder - can anyone explain why I am such a dunderhead?
[Cosmic37]: if ( $line =~ /$mydt/ ) { print $line; }
[Cosmic37]: I try to match successive date times stored in variable $mydt
[Cosmic37]: I guess it is searching for the string "$mydt"
[Corion]: Indeed cool, erix ;)
[Cosmic37]: rather than the value of $mydt which is a date time strong such as 2016-01-01 12:30:56
[Corion]: Cosmic37: No, but maybe $mydt doesn't contain what you think it does, or it contains characters that are special in a regular expression? Try if( $line =~ /\Q$mydt\E/) { ... for a literal match
[Cosmic37]: I mean string grrr
[Corion]: Maybe add an else branch in which you print what the values of $line and $mydt are?
[Cosmic37]: ah thank you I will try

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (8)
As of 2017-06-29 17:00 GMT
Find Nodes?
    Voting Booth?
    How many monitors do you use while coding?

    Results (673 votes). Check out past polls.