On 30 Jun 2017, at 14:43, Sven Van Caekenberghe <sven@stfx.eu> wrote:
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)"
]
}