On 2017-02-10 01:44, John Benediktsson wrote: > Right, probably 80-85% of the startup time is in the C++ method > factor_vm::load_image. > > Breaking it down further: > > - 32% of the startup time is factor_vm::load_data_heap > - 15% of the startup time is factor_vm::load_code_heap > - 32% of the startup time is factor_vm::fixup_heaps > > It's on the list to dig into but if you'd like, you could look there > and > see if there are improvements to be made. > > Best, > John. > > > > > On Sun, Feb 5, 2017 at 7:19 AM, <pet...@riseup.net> wrote: > >> On 2017-02-02 09:59, pet...@riseup.net wrote: >> > On 2017-02-01 22:39, John Benediktsson wrote: >> >> Feel free to jump in a profile startup and make some patches to >> >> improve >> >> things. >> >> >> >> Most languages seem to be under 50 milliseconds for the "startup and >> >> run no >> >> code" test case, so I would guess that should be fairly achievable. >> >> >> >> Best, >> >> John. >> >> >> >> On Wed, Feb 1, 2017 at 2:10 PM, <pet...@riseup.net> wrote: >> >> >> >>> On 2017-02-01 19:40, Jim Mack wrote: >> >>> > So why not create a separate small process that passes on its >> >>> > parameters to >> >>> > a running factor if it can find it, or starts a new one if it can't? >> >>> > >> >>> >> >>> That's like running a server and sending requests to it. I take >> >>> several >> >>> issues with that: >> >>> >> >>> 1 - I need one instance to have *all* my libraries, present and >> >>> future >> >>> to be pre-loaded. But more importantly: >> >>> 2 - a typical shell script can call a dozen external executables. >> >>> Some >> >>> will be in C, some in bash, some in python, some in perl etc. If >> >>> every >> >>> language would need a huge server to run, where would that leave us? >> >>> >> >>> > On Wed, Feb 1, 2017 at 7:51 AM, Timothy Hobbs <timo...@hobbs.cz> >> wrote: >> >>> > >> >>> >> Have you tried loading the >> >>> >> factor interpreter in the background and seeing if factor launches >> >>> >> quicker while another factor process is running? >> >>> >> >>> I did what I think is fair - started it once so everything necessary >> >>> gets cached in RAM and discard that run. As noted above I don't think >> >>> running a server for each possible language is a good solution. >> >>> >> >>> >> >>> Feel free to contradict me gentlemen, I'm open to discussion, but I >> >>> do >> >>> have my own opinion of what is acceptable and transferable to other >> >>> PCs >> >>> / colleagues. I'm not looking for some local hack to speed things up >> >>> but >> >>> a general solution that doesn't put any more burden on the end users >> >>> than it is necessary. >> >>> >> >>> -- >> >>> ------------ >> >>> Peter Nagy >> >>> ------------ >> >>> >> >>> ------------------------------------------------------------ >> >>> ------------------ >> >>> Check out the vibrant tech community on one of the world's most >> >>> engaging tech sites, SlashDot.org! http://sdm.link/slashdot >> >>> _______________________________________________ >> >>> Factor-talk mailing list >> >>> Factor-talk@lists.sourceforge.net >> >>> https://lists.sourceforge.net/lists/listinfo/factor-talk >> >>> >> >> >> >> ------------------------------------------------------------ >> ------------------ >> >> Check out the vibrant tech community on one of the world's most >> >> engaging tech sites, SlashDot.org! http://sdm.link/slashdot >> >> _______________________________________________ >> >> Factor-talk mailing list >> >> Factor-talk@lists.sourceforge.net >> >> https://lists.sourceforge.net/lists/listinfo/factor-talk >> > >> > I'd gladly take a look. Could you give me a hint how could I get >> > profiling statistics of the boot? I guess most of the startup time is >> > spent in factor code so I'd need to jack in a call to profile >> > somewhere and rebuild? >> >> I did a quick check with sysdig on the time of system calls - it shows >> the base image takes ~50ms to load from my 180ms startup time (which >> isn't too bad for 115MB file I guess). No other interesting syscalls, >> so >> I guess the leftover 130ms are spent in factor. I'll try to take a >> look >> how could I get profiling statistics on the startup of the listener. >> >> -- >> ------------ >> Peter Nagy >> ------------ >> >> ------------------------------------------------------------ >> ------------------ >> Check out the vibrant tech community on one of the world's most >> engaging tech sites, SlashDot.org! http://sdm.link/slashdot >> _______________________________________________ >> Factor-talk mailing list >> Factor-talk@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/factor-talk >> > > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, SlashDot.org! http://sdm.link/slashdot > _______________________________________________ > Factor-talk mailing list > Factor-talk@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/factor-talk
Unfortunately I have even less knowledge of c++ than of factor, so I probably won't be able to do much there. Nevertheless I'll take a look and see if I get enlightened. -- ------------ Peter Nagy ------------ ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot _______________________________________________ Factor-talk mailing list Factor-talk@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/factor-talk