Author cykerway
Recipients cykerway
Date 2018-07-31.17:31:24
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1533058284.7.0.56676864532.issue34296@psf.upfronthosting.co.za>
In-reply-to
Content
I'm currently writing some shell tools with python3. While python can definitely do the job succinctly, there is one problem which made me feel I might have to switch to other languages or even pure bash scripts: python startup time.

Shell tools are used very often, interactively. users do feel the lag when they hit enter after their command. i did 2 implementations in both python and pure bash, python takes about 500ms to run while bash is more than 10 times faster.

I'm not saying bash is better than python, but for this task bash, or even perl, is a better choice. however, i think there is an easy way to improve python as i believe the lag is mostly due to its slow startup: pre-warm its vm. 

I can think of 2 scenarios for python to do a better shell job:

1.  Run a universal python as a daemon, which reads scripts from a socket, runs it, and returns the result to a socket. Because it's running as a daemon, the startup time is avoided each time user runs a script.

2.  Warm a python zygote during system boot. Every time a python script is run, fork from the zygote instead of cold-boot the vm. this is a similar approach to android zygote.

I haven't done experiments to see whether there will be obstacles in implementing these scenarios. But I think this should become a priority because it's real and tangible, and other people may face the slow startup problem as well. If there's ongoing work on these, I'd be happy to have a look. But I don't think these scenarios have already been put into released versions of python.
History
Date User Action Args
2018-07-31 17:31:24cykerwaysetrecipients: + cykerway
2018-07-31 17:31:24cykerwaysetmessageid: <1533058284.7.0.56676864532.issue34296@psf.upfronthosting.co.za>
2018-07-31 17:31:24cykerwaylinkissue34296 messages
2018-07-31 17:31:24cykerwaycreate