On 27 Jun 2017, at 21:15, Sven Van Caekenberghe <sven@stfx.eu> wrote:
On 27 Jun 2017, at 21:00, Esteban A. Maringolo <emaringolo@gmail.com> wrote:
Interesting experiment.
It would be good to know how fast does the image boot and start execution in the context of a service billed at the sub second scale.
Sadly I have the impression we lost some speed:
~/pharo64$ ./pharo Pharo.image printVersion [version] 6.0 #60499
~/pharo64$ time ./pharo Pharo.image eval '42 factorial' 1405006117752879898543142606244511569936384000000000
real 0m1.276s user 0m0.985s sys 0m0.171s
while before
~/pharo/build$ ../bin/pharo Pharo.image printVersion [version] 4.0 #40620
$ time ../bin/pharo Pharo.image eval '42 factorial' 1405006117752879898543142606244511569936384000000000
real 0m0.526s user 0m0.434s sys 0m0.045s
But it is really hard to find the cause.
The good news is that the Pharo 7 minimal core is way faster $ time ./pharo ~/Downloads/Pharo7.0-core-32bit-b649ac6.image eval "42 factorial" 1405006117752879898543142606244511569936384000000000 real 0m0.262s user 0m0.132s sys 0m0.062s Which is good of course !
That being said, these lambda servers can only work well if they keep instances alive for longer when there is enough traffic.
Esteban A. Maringolo
2017-06-27 13:05 GMT-03:00 Tim Mackinnon <tim@testit.works>:
Hi - I am trying to run a pharo image in lambda (as an experiment) - however I get an error from Pharo about not being able to write to the changes file?
As I am just evaluating some code - Iâm not really coding, so donât need a changes file - is there a command line option to not require it?
Also, am I running pharo the most efficient way - Iâm using eval on the command line and referencing a class with a class method - but is this the best way?
Thanks,
Tim
"errorMessage": "Command failed: ./pharo Pharo.image eval \"Lambda processJSON: '{\"key3\":\"value3\",\"key2\":\"value2\",\"key1\":\"value1\"}'\"\n'Pharo cannot write to the changes file named /var/task/Pharo.changes.\n\nPlease check that you have write permission for this file.\n\nYou won''t be able to save this image correctly until you fix this.'\n\u001b[31mError: Can't find the requested origin\n\u001b[0mUnixResolver(PlatformResolver)>>cantFindOriginError\n[ self cantFindOriginError ] in UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed: in Block: [ self cantFindOriginError ]\nUnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:or:\nUnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:\nUnixResolver>>home\n[ self home / '.config' ] in UnixResolver>>preferences in Block: [ self home / '.config' ]\nUnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:or:\nUnixResolver>>preferences\nUnixResolver(FileSystemResolver)>>resolve:\nSystemResolver(FileSystemResolver)>>unknownOrigin:\nSystemResolver(FileSystemResolver)>>resolve:\nInteractiveResolver>>unknownOrigin:\n[ self unknownOrigin: origin ] in InteractiveResolver>>resolve: in Block: [ self unknownOrigin: origin ]\nIdentityDictionary(Dictionary)>>at:ifAbsent:\nInteractiveResolver>>resolve:\nFileLocator>>resolve\nFileLocator(AbstractFileReference)>>exists\nGlobalIdentifierStonPersistence(GlobalIdentifierPersistence)>>shouldCallPreviousPersistence\nGlobalIdentifierStonPersistence(GlobalIdentifierPersistence)>>ensure:\nGlobalIdentifier>>ensure\nGlobalIdentifier class>>initializeUniqueInstance\nGlobalIdentifier class>>uniqueInstance\nSystemSettingsPersistence class>>resumeSystemSettings\n[ :persistence | persistence resumeSystemSettings ] in PharoCommandLineHandler>>runPreferences in Block: [ :persistence | persistence resumeSystemSettings ...etc...\nBlockClosure>>cull:\nSystemDictionary(Dictionary)>>at:ifPresent:\nSmalltalkImage>>at:ifPresent:\nPharoCommandLineHandler>>runPreferences\nPharoCommandLineHandler>>activate\nPharoCommandLineHandler class(CommandLineHandler class)>>activateWith:\n\u001b[0m", "errorType": "Error", "stackTrace": [ "'Pharo cannot write to the changes file named /var/task/Pharo.changes.", "", "Please check that you have write permission for this file.", "", "You won''t be able to save this image correctly until you fix this.'", "\u001b[31mError: Can't find the requested origin", "\u001b[0mUnixResolver(PlatformResolver)>>cantFindOriginError", "[ self cantFindOriginError ] in UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed: in Block: [ self cantFindOriginError ]", "UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:or:", "UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:", "UnixResolver>>home", "[ self home / '.config' ] in UnixResolver>>preferences in Block: [ self home / '.config' ]", "UnixResolver(PlatformResolver)>>directoryFromEnvVariableNamed:or:", "UnixResolver>>preferences", "UnixResolver(FileSystemResolver)>>resolve:", "SystemResolver(FileSystemResolver)>>unknownOrigin:", "SystemResolver(FileSystemResolver)>>resolve:", "InteractiveResolver>>unknownOrigin:", "[ self unknownOrigin: origin ] in InteractiveResolver>>resolve: in Block: [ self unknownOrigin: origin ]", "IdentityDictionary(Dictionary)>>at:ifAbsent:", "InteractiveResolver>>resolve:", "FileLocator>>resolve", "FileLocator(AbstractFileReference)>>exists",
"GlobalIdentifierStonPersistence(GlobalIdentifierPersistence)>>shouldCallPreviousPersistence", "GlobalIdentifierStonPersistence(GlobalIdentifierPersistence)>>ensure:", "GlobalIdentifier>>ensure", "GlobalIdentifier class>>initializeUniqueInstance", "GlobalIdentifier class>>uniqueInstance", "SystemSettingsPersistence class>>resumeSystemSettings", "[ :persistence | persistence resumeSystemSettings ] in PharoCommandLineHandler>>runPreferences in Block: [ :persistence | persistence resumeSystemSettings ...etc...", "BlockClosure>>cull:", "SystemDictionary(Dictionary)>>at:ifPresent:", "SmalltalkImage>>at:ifPresent:", "PharoCommandLineHandler>>runPreferences", "PharoCommandLineHandler>>activate", "PharoCommandLineHandler class(CommandLineHandler class)>>activateWith:", "\u001b[0m", "ChildProcess.exithandler (child_process.js:204:12)", "emitTwo (events.js:106:13)", "ChildProcess.emit (events.js:191:7)", "maybeClose (internal/child_process.js:886:16)", "Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)" ] }