> On 27 Jun 2017, at 21:15, Sven Van Caekenberghe <[email protected]> wrote:
> 
> 
>> On 27 Jun 2017, at 21:00, Esteban A. Maringolo <[email protected]> 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 <[email protected]>:
>>> 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)"
>>> ]
>>> }
>>> 
>>> 
>> 
> 


Reply via email to