Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re: Inline::C on Windows: how to improve performance of compiled code?

by sundialsvc4 (Abbot)
on Jun 15, 2018 at 13:04 UTC ( #1216706=note: print w/replies, xml ) Need Help??


in reply to Inline::C on Windows: how to improve performance of compiled code?

We really need more information about what this program is actually doing, and how the C code relates to the Perl code. Your no-op example are precisely this ... no-ops ... and could only possibly be exercising the thunking logic that passes control to the inline environment and back. Could it be that the two Perl interpreters are compiled differently? "C" optimization can't possibly be a factor when the "C" subroutines don't do anything: the difference must be in the two Perl interpreters themselves.
  • Comment on Re: Inline::C on Windows: how to improve performance of compiled code?

Replies are listed 'Best First'.
Re^2: Inline::C on Windows: how to improve performance of compiled code?
by syphilis (Bishop) on Jun 15, 2018 at 13:22 UTC
    the difference must be in the two Perl interpreters themselves

    Couldn't it alternatively be that the difference is in the way that the 2 different systems (ie Linux and Windows) access functions in external shared libraries ?

    Cheers,
    Rob
      Interesting question...

      I came across a public article about linking and differences between Windows and Unix by Symantec:
      Symantec, Dynamic Linking in Linux and Windows, part one
      Symantec, Dynamic Linking in Linux and Windows, part two

      This is not a "light read" and I did not study it in depth. I'm not sure if this article "jives" with what I heard 20 years ago..that Linux can load a .so faster than Windows can load a .DLL, because Windows has to adjust jump addresses and potentially make another copy of the DLL which takes time, but that once linked, calling (running) with the Windows DLL is faster? I was working on systems around the time that NT was a separate thing from Windows.

      Anyway there appears to be a lot of detail for those inclined in the above articles.

      I have never used Inline:C or linked to an external C program with Perl. I don't know what difference there may be with that either. BrowserUk does a lot of Windows combined with C stuff and hopefully he can shower some wisdom down upon us.

        A reply falls below the community's threshold of quality. You may see it by logging in.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1216706]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (5)
As of 2019-07-20 18:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?