Pharo-users
By thread
pharo-users@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- 7 participants
- 50354 messages
Re: [Pharo-users] What can we look forward to in 2017?
by Offray Vladimir Luna Cárdenas
On 14/12/16 11:38, Dimitris Chloupis wrote:
>
> On Wed, Dec 14, 2016 at 5:35 PM Offray Vladimir Luna Cárdenas
> <offray.luna(a)mutabit.com <mailto:offray.luna@mutabit.com>> wrote:
>
> This is a good example of the "empowering map" I talk about about
> "Pharo/Smalltalk places for you". What we can look forward in 2017
> is different for different people, so going beyond the "most
> exiting developments", hype and shiny new things is also a way to
> show how Pharo/Smalltalk are different. We can provide shine and
> hype, but also we're building stuff for different interests and
> people and that is even more worthy to look for the upcoming times
> (2017 and beyond).
>
> Cheers,
>
> Offray
>
>
> I think there is big difference between doing something exciting
> versus doing something useful. Excitement dies out but usefulness does
> not. I don't do it to make Pharo look cool, I do it because I need it.
> I also do not like to do something and then abandon it like it happens
> for 99% of the open source software.
>
Yes. That's why I'm inviting Richard to go beyond exiting to
interesting. He has accepted my invitation.
Cheers,
Offray
Dec. 15, 2016
Re: [Pharo-users] wwwhisper
by Robert Withers
I have no idea if that's true, I like to dream and I am just glad it is
here. happy holidays.
On 12/14/2016 6:46 PM, Robert Withers wrote:
> here's a good step I think it settled well. encoders are next. I
> haven't got any java left . Merry Christmas! Here's the profile. AS
> fast as bitblt are you serious?
>
> ____
>
> - 27380 tallies, 28129 msec.
>
> **Tree**
> --------------------------------
> Process: (40s) 95416: nil
> --------------------------------
> 13.6% {3815ms} MessageTally class>>spyOn:reportOtherProcesses:
> 13.6% {3815ms} MessageTally>>spyEvery:on:
> 13.6% {3815ms} BlockClosure>>ensure:
> 13.6% {3815ms} [] TestRunner>>runProfiled
> 13.6% {3815ms} TestRunner>>runAll
> 13.6% {3814ms} TestRunner>>runSuite:
> 13.6% {3814ms} TestRunner>>basicRunSuite:do:
> 13.6% {3814ms} BlockClosure>>ensure:
> 13.6% {3814ms} [] TestRunner>>basicRunSuite:do:
> 13.6% {3814ms}
> OrderedCollection(Collection)>>do:displayingProgress:every:
> 13.6% {3814ms}
> ByteString(String)>>displayProgressFrom:to:during:
> 13.6% {3814ms}
> ByteString(String)>>displayProgressAt:from:to:during:
> 13.6% {3814ms} ProgressInitiationException
> class>>display:at:from:to:during:
> 13.6% {3814ms}
> ProgressInitiationException>>display:at:from:to:during:
> 13.6% {3814ms}
> ProgressInitiationException(Exception)>>signal
> 13.6% {3814ms}
> MethodContext(ContextPart)>>handleSignal:
> 13.6% {3814ms}
> UndefinedObject>>handleSignal:
> 13.6% {3814ms}
> ProgressInitiationException>>defaultAction
> 13.6% {3814ms}
> ProgressInitiationException(Exception)>>resume
> 13.6% {3814ms}
> ProgressInitiationException>>defaultResumeValue
> 13.6% {3814ms}
> MorphicUIManager>>displayProgress:at:from:to:during:
> 13.6% {3813ms}
> BlockClosure>>ensure:
> 13.6% {3813ms} []
> MorphicUIManager>>displayProgress:at:from:to:during:
> 13.6% {3811ms}
> BlockClosure>>on:do:
> 13.6% {3811ms} [[]]
> MorphicUIManager>>displayProgress:at:from:to:during:
> 13.6% {3811ms} []
> OrderedCollection(Collection)>>do:displayingProgress:every:
> 13.6% {3811ms}
> OrderedCollection>>do:
> 13.6% {3811ms}
> [[]] OrderedCollection(Collection)>>do:displayingProgress:every:
> 13.2% {3719ms}
> [] TestRunner>>runSuite:
> 13.2%
> {3719ms} TestRunner>>runTest:
> 13.2%
> {3718ms} MoreDataTestCase(TestCase)>>run:
> 13.2% {3718ms} TestResult>>runCase:
> 13.2% {3718ms} BlockClosure>>on:do:
> 13.2% {3718ms} [] TestResult>>runCase:
> 13.2% {3718ms} BlockClosure>>on:do:
> 13.2% {3718ms} [[]] TestResult>>runCase:
> 13.2% {3718ms} MoreDataTestCase(TestCase)>>runCase
> 13.2% {3718ms} BlockClosure>>ensure:
> 13.2% {3718ms} [] MoreDataTestCase(TestCase)>>runCase
> 12.7% {3583ms} MoreDataTestCase(TestCase)>>timeout:after:
> 12.7% {3582ms} BlockClosure>>ensure:
> 12.7% {3582ms} [] MoreDataTestCase(TestCase)>>timeout:after:
> 12.7% {3582ms} BlockClosure>>on:do:
> 12.7% {3582ms} [[]] MoreDataTestCase(TestCase)>>runCase
> 12.7% {3580ms} MoreDataTestCase(TestCase)>>performTest
> 1.3% {366ms} MoreDataTestCase>>testDoubleDataDBL_AESede
> 1.3% {366ms} ConnectTestCase>>testConnect
> 1.3% {365ms} MoreDataTestCase>>testDoubleData
> 1.3% {364ms} DataTestCase>>testData
> 1.3% {358ms} SqueakJavaTestCase>>testData
> 1.3% {356ms} MoreDataTestCase>>testDoubleDataNoisy
> 1.3% {354ms} MoreDataTestCase>>testDoubleDataAES
> 1.3% {354ms} MoreDataTestCase>>testDoubleDataDES
> 1.2% {350ms} MoreDataTestCase>>testEmptyData
> 1.2% {347ms} MoreDataTestCase>>testDoubleDataDESOverAESede
> --------------------------------
> Process: other processes
> --------------------------------
> 67.0% {18857ms} [] ProcessorScheduler class>>startUp
> |67.0% {18857ms} ProcessorScheduler class>>idleProcess
> 18.6% {5241ms} [] TransportEndpoint(ProtocolEndpoint)>>run
> 18.6% {5241ms} TransportEndpoint(ProtocolEndpoint)>>serverLoop
> 18.5% {5206ms} BlockClosure>>on:do:
> 18.5% {5206ms} [] TransportEndpoint(ProtocolEndpoint)>>serverLoop
> 18.2% {5120ms} FrameChunker>>upcallFrame:
> 18.2% {5119ms} FrameChunker>>drainBuffer
> 17.8% {5002ms} BlockClosure>>on:do:
> 17.8% {5002ms} [] FrameChunker>>drainBuffer
> 17.8% {5002ms} OperationProtocol>>upcallFrame:
> 10.2% {2867ms}
> OperationProtocol(StatefulProtocol)>>transitionEvent:with:
> |10.2% {2867ms}
> ProtocolStateTransition>>transitionFor:with:
> | 3.8% {1080ms} OperationProtocol>>processGo:
> | |1.4% {383ms}
> OperationProtocol>>processDhParm:incoming:
> | | |1.4% {383ms}
> EncryptionSecrets>>processDhParm:incoming:
> | | | 1.3% {371ms}
> DiffieHellman>>receiveMessage:
> | | | 1.3% {371ms}
> LargePositiveInteger(Integer)>>raisedTo:modulo:
> | | | 1.3% {371ms}
> LargePositiveInteger(Integer)>>slidingLeftRightRaisedTo:modulo:
> | | | 1.3% {368ms}
> LargePositiveInteger>>\\
> | |1.1% {323ms} OperationProtocol>>dhParm
> | | 1.1% {323ms} EncryptionSecrets>>dhParm
> | | 1.1% {323ms} DiffieHellman>>sendMessage
> | | 1.1% {323ms}
> SmallInteger(Integer)>>raisedTo:modulo:
> | | 1.1% {323ms}
> SmallInteger(Integer)>>slidingLeftRightRaisedTo:modulo:
> | | 1.1% {316ms} LargePositiveInteger>>\\
> | 3.5% {987ms} OperationProtocol>>processGoToo:
> | |3.5% {976ms}
> OperationProtocol>>processDhParm:incoming:
> | | 3.5% {976ms}
> EncryptionSecrets>>processDhParm:incoming:
> | | 3.3% {942ms} DiffieHellman>>receiveMessage:
> | | 3.3% {942ms}
> LargePositiveInteger(Integer)>>raisedTo:modulo:
> | | 3.3% {942ms}
> LargePositiveInteger(Integer)>>slidingLeftRightRaisedTo:modulo:
> | | 3.3% {934ms} LargePositiveInteger>>\\
> | | 2.4% {672ms}
> Array(SequenceableCollection)>>first
> | 2.4% {686ms} OperationProtocol>>processReplyInfo:
> | 1.5% {430ms} OperationProtocol>>dhParm
> | 1.5% {430ms} EncryptionSecrets>>dhParm
> | 1.5% {430ms} DiffieHellman>>sendMessage
> | 1.5% {430ms}
> SmallInteger(Integer)>>raisedTo:modulo:
> | 1.5% {430ms}
> SmallInteger(Integer)>>slidingLeftRightRaisedTo:modulo:
> | 1.5% {428ms} LargePositiveInteger>>\\
> | 1.1% {317ms}
> Array(SequenceableCollection)>>first
> 7.5% {2114ms} OperationProtocol(Object)>>etrace:msg:
> 7.5% {2114ms} OperationProtocol(Object)>>etrace:
> 7.5% {2114ms}
> OperationProtocol(Object)>>triggerEvent:with:
> 7.5% {2114ms}
> OperationProtocol(Object)>>triggerEvent:withArguments:
> 7.5% {2114ms}
> WeakMessageSend>>valueWithArguments:
> 7.5% {2114ms}
> WeakMessageSend>>valueWithArguments:otherwise:
> 7.5% {2114ms}
> WeakMessageSend>>withEnsuredReceiverAndArgumentsDo:otherwise:
> 7.5% {2114ms} []
> WeakMessageSend>>valueWithArguments:otherwise:
> 7.5% {2114ms}
> TraceMonitor>>handleEtrace:
> 7.1% {1999ms}
> TraceMonitor>>traceEventToStream:
> 7.1% {1999ms} Semaphore>>critical:
> 7.1% {1999ms}
> BlockClosure>>ensure:
> 7.1% {1999ms} []
> Semaphore>>critical:
> 7.1% {1999ms} []
> TraceMonitor>>traceEventToStream:
> 7.0% {1978ms}
> CompositeWriteStream>>flush
> 7.0% {1978ms}
> Dictionary>>do:
> 7.0% {1978ms}
> Dictionary>>valuesDo:
> 7.0% {1978ms}
> Dictionary>>associationsDo:
> 7.0% {1978ms} []
> Dictionary>>valuesDo:
> 7.0% {1978ms}
> [] CompositeWriteStream>>flush
> 7.0%
> {1978ms} TranscriptStream>>flush
> 7.0%
> {1978ms} TranscriptStream>>endEntry
> 7.0%
> {1978ms} Semaphore>>critical:
> 7.0% {1978ms} BlockClosure>>ensure:
> 7.0% {1978ms} [] Semaphore>>critical:
>
> 7.0% {1978ms} [] TranscriptStream>>endEntry
> 7.0% {1978ms} TranscriptStream(Object)>>changed:
> 7.0% {1978ms} DependentsArray>>do:
> 7.0% {1977ms} [] TranscriptStream(Object)>>changed:
> 7.0% {1977ms} PluggableTextMorphPlus>>update:
> 7.0% {1977ms} PluggableTextMorphPlus(PluggableTextMorph)>>update:
> 5.8% {1622ms} PluggableTextMorphPlus(Morph)>>refreshWorld
> |5.8% {1622ms} PasteUpMorph>>displayWorldSafely
> | 5.8% {1622ms} WorldState>>displayWorldSafely:
> | 5.8% {1622ms} BlockClosure>>ifError:
> | 5.8% {1622ms} BlockClosure>>on:do:
> | 5.8% {1622ms} [] WorldState>>displayWorldSafely:
> | 5.8% {1622ms} PasteUpMorph>>displayWorld
> | 5.8% {1622ms} PasteUpMorph>>privateOuterDisplayWorld
> | 5.8% {1622ms} WorldState>>displayWorld:submorphs:
> | 5.7% {1609ms}
> WorldState>>drawWorld:submorphs:invalidAreasOn:
> | 5.7% {1609ms} Array(SequenceableCollection)>>do:
> | 4.0% {1113ms} []
> WorldState>>drawWorld:submorphs:invalidAreasOn:
> | |4.0% {1113ms} Rectangle>>allAreasOutsideList:do:
> | | 4.0% {1113ms}
> Rectangle>>allAreasOutsideList:startingAt:do:
> | | 3.9% {1109ms} [[]]
> WorldState>>drawWorld:submorphs:invalidAreasOn:
> | | 3.9% {1109ms}
> FormCanvas(Canvas)>>fullDrawMorph:
> | | 3.9% {1109ms}
> FormCanvas(Canvas)>>fullDraw:
> | | 3.9% {1109ms}
> PluggableSystemWindow(Morph)>>fullDrawOn:
> | | 3.6% {1022ms}
> PluggableSystemWindow(Morph)>>drawSubmorphsOn:
> | | 3.5% {998ms} []
> PluggableSystemWindow(Morph)>>drawSubmorphsOn:
> | | 3.5% {998ms}
> Array(SequenceableCollection)>>reverseDo:
> | | 3.5% {998ms} [[]]
> PluggableSystemWindow(Morph)>>drawSubmorphsOn:
> | | 3.5% {998ms}
> FormCanvas(Canvas)>>fullDrawMorph:
> | | 3.5% {998ms}
> FormCanvas(Canvas)>>fullDraw:
> | | 3.5% {998ms}
> PluggableTextMorphPlus(Morph)>>fullDrawOn:
> | | 2.6% {722ms}
> PluggableTextMorphPlus(Morph)>>drawSubmorphsOn:
> | | 2.6% {722ms} []
> PluggableTextMorphPlus(Morph)>>drawSubmorphsOn:
> | | 2.6% {722ms}
> Array(SequenceableCollection)>>reverseDo:
> | | 2.6% {722ms}
> [[]] PluggableTextMorphPlus(Morph)>>drawSubmorphsOn:
> | | 2.6% {722ms}
> FormCanvas(Canvas)>>fullDrawMorph:
> | | 2.6%
> {722ms} FormCanvas(Canvas)>>fullDraw:
> | | 2.6%
> {722ms} TransformMorph(Morph)>>fullDrawOn:
> | | 2.4% {688ms} TransformMorph>>drawSubmorphsOn:
> | | 2.4% {688ms}
> FormCanvas>>transformBy:clippingTo:during:smoothing:
> | | 2.4% {688ms} []
> TransformMorph>>drawSubmorphsOn:
> | | 2.4% {688ms}
> Array(SequenceableCollection)>>reverseDo:
> | | 2.4% {688ms} [[]]
> TransformMorph>>drawSubmorphsOn:
> | | 2.4% {688ms}
> FormCanvas(Canvas)>>fullDrawMorph:
> | | 2.4% {688ms}
> FormCanvas(Canvas)>>fullDraw:
> | | 2.4% {688ms}
> TextMorphForEditView(Morph)>>fullDrawOn:
> | | 2.4%
> {687ms} FormCanvas(Canvas)>>drawMorph:
> | | 2.4%
> {687ms} FormCanvas(Canvas)>>draw:
> | | 2.4% {686ms} TextMorphForEditView(TextMorph)>>drawOn:
> | | 2.4% {685ms} FormCanvas>>paragraph:bounds:color:
> | | 2.4% {685ms} NewParagraph>>displayOn:using:at:
> | | 2.4% {685ms}
> BitBltDisplayScanner(DisplayScanner)>>displayLine:offset:leftInRun:
> | | 2.3% {661ms} BitBltDisplayScanner>>displayString:from:to:at:
> | | 2.3% {661ms} StrikeFont>>displayString:on:from:to:at:kern:
> | | 1.3% {364ms}
> GrafPort(BitBlt)>>displayString:from:to:at:strikeFont:kern:
> | | |1.3% {363ms}
> GrafPort(BitBlt)>>basicDisplayString:from:to:at:strikeFont:kern:
> | | 1.1% {297ms} Point>>=
> | 1.8% {496ms} primitives
> 1.3% {354ms} PluggableTextMorphPlus(PluggableTextMorph)>>handleEdit:
>
> **Leaves**
> 67.0% {18857ms} ProcessorScheduler class>>idleProcess
> 5.4% {1505ms} Array(SequenceableCollection)>>first
> 2.5% {704ms} Point>>=
> 2.3% {644ms} Array(SequenceableCollection)>>do:
> 2.0% {558ms} LargePositiveInteger>>\\
> 1.9% {540ms} ByteArray>>bitXor:
> 1.9% {536ms}
> GrafPort(BitBlt)>>basicDisplayString:from:to:at:strikeFont:kern:
> 1.6% {438ms} SHA1>>finalHash
> 1.4% {385ms} LargePositiveInteger(Integer)>>bitShift:
> 1.4% {383ms} SHA1>>hashStream:
> 1.3% {362ms} SimpleBorder>>width
>
> **Memory**
> old +0 bytes
> young +27,152 bytes
> used +27,152 bytes
> free -27,152 bytes
>
> **GCs**
> full 0 totalling 0 ms (0% uptime)
> incr 558 totalling 198 ms (0.7% uptime), avg 0.4 ms
> tenures 11,171 (avg 0 GCs/tenure)
> root table 0 overflows
>
Dec. 15, 2016
whisper next steps encoders focused
by Charlie Robbats
I appreciate any feedback. Thank you for Squeak! I am delighted, thanks
to the community. So many projects in our semantic clouds. Thank you. I
think it is as fast as bitblt? Thanks!
Merry Christmas welcome family.
https://www.dropbox.com/s/z1ajc9k825a47cx/Whisper-rww.115.zip?dl=0
Dec. 15, 2016
wwwhisper
by Robert Withers
here's a good step I think it settled well. encoders are next. I haven't
got any java left . Merry Christmas! Here's the profile. AS fast as
bitblt are you serious?
____
- 27380 tallies, 28129 msec.
**Tree**
--------------------------------
Process: (40s) 95416: nil
--------------------------------
13.6% {3815ms} MessageTally class>>spyOn:reportOtherProcesses:
13.6% {3815ms} MessageTally>>spyEvery:on:
13.6% {3815ms} BlockClosure>>ensure:
13.6% {3815ms} [] TestRunner>>runProfiled
13.6% {3815ms} TestRunner>>runAll
13.6% {3814ms} TestRunner>>runSuite:
13.6% {3814ms} TestRunner>>basicRunSuite:do:
13.6% {3814ms} BlockClosure>>ensure:
13.6% {3814ms} [] TestRunner>>basicRunSuite:do:
13.6% {3814ms}
OrderedCollection(Collection)>>do:displayingProgress:every:
13.6% {3814ms}
ByteString(String)>>displayProgressFrom:to:during:
13.6% {3814ms}
ByteString(String)>>displayProgressAt:from:to:during:
13.6% {3814ms} ProgressInitiationException
class>>display:at:from:to:during:
13.6% {3814ms}
ProgressInitiationException>>display:at:from:to:during:
13.6% {3814ms}
ProgressInitiationException(Exception)>>signal
13.6% {3814ms}
MethodContext(ContextPart)>>handleSignal:
13.6% {3814ms}
UndefinedObject>>handleSignal:
13.6% {3814ms}
ProgressInitiationException>>defaultAction
13.6% {3814ms}
ProgressInitiationException(Exception)>>resume
13.6% {3814ms}
ProgressInitiationException>>defaultResumeValue
13.6% {3814ms}
MorphicUIManager>>displayProgress:at:from:to:during:
13.6% {3813ms}
BlockClosure>>ensure:
13.6% {3813ms} []
MorphicUIManager>>displayProgress:at:from:to:during:
13.6% {3811ms}
BlockClosure>>on:do:
13.6% {3811ms} [[]]
MorphicUIManager>>displayProgress:at:from:to:during:
13.6% {3811ms} []
OrderedCollection(Collection)>>do:displayingProgress:every:
13.6% {3811ms}
OrderedCollection>>do:
13.6% {3811ms}
[[]] OrderedCollection(Collection)>>do:displayingProgress:every:
13.2% {3719ms}
[] TestRunner>>runSuite:
13.2%
{3719ms} TestRunner>>runTest:
13.2%
{3718ms} MoreDataTestCase(TestCase)>>run:
13.2% {3718ms} TestResult>>runCase:
13.2% {3718ms} BlockClosure>>on:do:
13.2% {3718ms} [] TestResult>>runCase:
13.2% {3718ms} BlockClosure>>on:do:
13.2% {3718ms} [[]] TestResult>>runCase:
13.2% {3718ms} MoreDataTestCase(TestCase)>>runCase
13.2% {3718ms} BlockClosure>>ensure:
13.2% {3718ms} [] MoreDataTestCase(TestCase)>>runCase
12.7% {3583ms} MoreDataTestCase(TestCase)>>timeout:after:
12.7% {3582ms} BlockClosure>>ensure:
12.7% {3582ms} [] MoreDataTestCase(TestCase)>>timeout:after:
12.7% {3582ms} BlockClosure>>on:do:
12.7% {3582ms} [[]] MoreDataTestCase(TestCase)>>runCase
12.7% {3580ms} MoreDataTestCase(TestCase)>>performTest
1.3% {366ms} MoreDataTestCase>>testDoubleDataDBL_AESede
1.3% {366ms} ConnectTestCase>>testConnect
1.3% {365ms} MoreDataTestCase>>testDoubleData
1.3% {364ms} DataTestCase>>testData
1.3% {358ms} SqueakJavaTestCase>>testData
1.3% {356ms} MoreDataTestCase>>testDoubleDataNoisy
1.3% {354ms} MoreDataTestCase>>testDoubleDataAES
1.3% {354ms} MoreDataTestCase>>testDoubleDataDES
1.2% {350ms} MoreDataTestCase>>testEmptyData
1.2% {347ms} MoreDataTestCase>>testDoubleDataDESOverAESede
--------------------------------
Process: other processes
--------------------------------
67.0% {18857ms} [] ProcessorScheduler class>>startUp
|67.0% {18857ms} ProcessorScheduler class>>idleProcess
18.6% {5241ms} [] TransportEndpoint(ProtocolEndpoint)>>run
18.6% {5241ms} TransportEndpoint(ProtocolEndpoint)>>serverLoop
18.5% {5206ms} BlockClosure>>on:do:
18.5% {5206ms} [] TransportEndpoint(ProtocolEndpoint)>>serverLoop
18.2% {5120ms} FrameChunker>>upcallFrame:
18.2% {5119ms} FrameChunker>>drainBuffer
17.8% {5002ms} BlockClosure>>on:do:
17.8% {5002ms} [] FrameChunker>>drainBuffer
17.8% {5002ms} OperationProtocol>>upcallFrame:
10.2% {2867ms}
OperationProtocol(StatefulProtocol)>>transitionEvent:with:
|10.2% {2867ms}
ProtocolStateTransition>>transitionFor:with:
| 3.8% {1080ms} OperationProtocol>>processGo:
| |1.4% {383ms}
OperationProtocol>>processDhParm:incoming:
| | |1.4% {383ms}
EncryptionSecrets>>processDhParm:incoming:
| | | 1.3% {371ms} DiffieHellman>>receiveMessage:
| | | 1.3% {371ms}
LargePositiveInteger(Integer)>>raisedTo:modulo:
| | | 1.3% {371ms}
LargePositiveInteger(Integer)>>slidingLeftRightRaisedTo:modulo:
| | | 1.3% {368ms} LargePositiveInteger>>\\
| |1.1% {323ms} OperationProtocol>>dhParm
| | 1.1% {323ms} EncryptionSecrets>>dhParm
| | 1.1% {323ms} DiffieHellman>>sendMessage
| | 1.1% {323ms}
SmallInteger(Integer)>>raisedTo:modulo:
| | 1.1% {323ms}
SmallInteger(Integer)>>slidingLeftRightRaisedTo:modulo:
| | 1.1% {316ms} LargePositiveInteger>>\\
| 3.5% {987ms} OperationProtocol>>processGoToo:
| |3.5% {976ms}
OperationProtocol>>processDhParm:incoming:
| | 3.5% {976ms}
EncryptionSecrets>>processDhParm:incoming:
| | 3.3% {942ms} DiffieHellman>>receiveMessage:
| | 3.3% {942ms}
LargePositiveInteger(Integer)>>raisedTo:modulo:
| | 3.3% {942ms}
LargePositiveInteger(Integer)>>slidingLeftRightRaisedTo:modulo:
| | 3.3% {934ms} LargePositiveInteger>>\\
| | 2.4% {672ms}
Array(SequenceableCollection)>>first
| 2.4% {686ms} OperationProtocol>>processReplyInfo:
| 1.5% {430ms} OperationProtocol>>dhParm
| 1.5% {430ms} EncryptionSecrets>>dhParm
| 1.5% {430ms} DiffieHellman>>sendMessage
| 1.5% {430ms}
SmallInteger(Integer)>>raisedTo:modulo:
| 1.5% {430ms}
SmallInteger(Integer)>>slidingLeftRightRaisedTo:modulo:
| 1.5% {428ms} LargePositiveInteger>>\\
| 1.1% {317ms}
Array(SequenceableCollection)>>first
7.5% {2114ms} OperationProtocol(Object)>>etrace:msg:
7.5% {2114ms} OperationProtocol(Object)>>etrace:
7.5% {2114ms}
OperationProtocol(Object)>>triggerEvent:with:
7.5% {2114ms}
OperationProtocol(Object)>>triggerEvent:withArguments:
7.5% {2114ms}
WeakMessageSend>>valueWithArguments:
7.5% {2114ms}
WeakMessageSend>>valueWithArguments:otherwise:
7.5% {2114ms}
WeakMessageSend>>withEnsuredReceiverAndArgumentsDo:otherwise:
7.5% {2114ms} []
WeakMessageSend>>valueWithArguments:otherwise:
7.5% {2114ms} TraceMonitor>>handleEtrace:
7.1% {1999ms}
TraceMonitor>>traceEventToStream:
7.1% {1999ms} Semaphore>>critical:
7.1% {1999ms} BlockClosure>>ensure:
7.1% {1999ms} []
Semaphore>>critical:
7.1% {1999ms} []
TraceMonitor>>traceEventToStream:
7.0% {1978ms}
CompositeWriteStream>>flush
7.0% {1978ms}
Dictionary>>do:
7.0% {1978ms}
Dictionary>>valuesDo:
7.0% {1978ms}
Dictionary>>associationsDo:
7.0% {1978ms} []
Dictionary>>valuesDo:
7.0% {1978ms}
[] CompositeWriteStream>>flush
7.0% {1978ms}
TranscriptStream>>flush
7.0%
{1978ms} TranscriptStream>>endEntry
7.0%
{1978ms} Semaphore>>critical:
7.0% {1978ms} BlockClosure>>ensure:
7.0% {1978ms} [] Semaphore>>critical:
7.0% {1978ms} [] TranscriptStream>>endEntry
7.0% {1978ms} TranscriptStream(Object)>>changed:
7.0% {1978ms} DependentsArray>>do:
7.0% {1977ms} [] TranscriptStream(Object)>>changed:
7.0% {1977ms} PluggableTextMorphPlus>>update:
7.0% {1977ms} PluggableTextMorphPlus(PluggableTextMorph)>>update:
5.8% {1622ms} PluggableTextMorphPlus(Morph)>>refreshWorld
|5.8% {1622ms} PasteUpMorph>>displayWorldSafely
| 5.8% {1622ms} WorldState>>displayWorldSafely:
| 5.8% {1622ms} BlockClosure>>ifError:
| 5.8% {1622ms} BlockClosure>>on:do:
| 5.8% {1622ms} [] WorldState>>displayWorldSafely:
| 5.8% {1622ms} PasteUpMorph>>displayWorld
| 5.8% {1622ms} PasteUpMorph>>privateOuterDisplayWorld
| 5.8% {1622ms} WorldState>>displayWorld:submorphs:
| 5.7% {1609ms}
WorldState>>drawWorld:submorphs:invalidAreasOn:
| 5.7% {1609ms} Array(SequenceableCollection)>>do:
| 4.0% {1113ms} []
WorldState>>drawWorld:submorphs:invalidAreasOn:
| |4.0% {1113ms} Rectangle>>allAreasOutsideList:do:
| | 4.0% {1113ms}
Rectangle>>allAreasOutsideList:startingAt:do:
| | 3.9% {1109ms} [[]]
WorldState>>drawWorld:submorphs:invalidAreasOn:
| | 3.9% {1109ms}
FormCanvas(Canvas)>>fullDrawMorph:
| | 3.9% {1109ms} FormCanvas(Canvas)>>fullDraw:
| | 3.9% {1109ms}
PluggableSystemWindow(Morph)>>fullDrawOn:
| | 3.6% {1022ms}
PluggableSystemWindow(Morph)>>drawSubmorphsOn:
| | 3.5% {998ms} []
PluggableSystemWindow(Morph)>>drawSubmorphsOn:
| | 3.5% {998ms}
Array(SequenceableCollection)>>reverseDo:
| | 3.5% {998ms} [[]]
PluggableSystemWindow(Morph)>>drawSubmorphsOn:
| | 3.5% {998ms}
FormCanvas(Canvas)>>fullDrawMorph:
| | 3.5% {998ms}
FormCanvas(Canvas)>>fullDraw:
| | 3.5% {998ms}
PluggableTextMorphPlus(Morph)>>fullDrawOn:
| | 2.6% {722ms}
PluggableTextMorphPlus(Morph)>>drawSubmorphsOn:
| | 2.6% {722ms} []
PluggableTextMorphPlus(Morph)>>drawSubmorphsOn:
| | 2.6% {722ms}
Array(SequenceableCollection)>>reverseDo:
| | 2.6% {722ms}
[[]] PluggableTextMorphPlus(Morph)>>drawSubmorphsOn:
| | 2.6% {722ms}
FormCanvas(Canvas)>>fullDrawMorph:
| | 2.6% {722ms}
FormCanvas(Canvas)>>fullDraw:
| | 2.6%
{722ms} TransformMorph(Morph)>>fullDrawOn:
| | 2.4% {688ms} TransformMorph>>drawSubmorphsOn:
| | 2.4% {688ms}
FormCanvas>>transformBy:clippingTo:during:smoothing:
| | 2.4% {688ms} []
TransformMorph>>drawSubmorphsOn:
| | 2.4% {688ms}
Array(SequenceableCollection)>>reverseDo:
| | 2.4% {688ms} [[]]
TransformMorph>>drawSubmorphsOn:
| | 2.4% {688ms}
FormCanvas(Canvas)>>fullDrawMorph:
| | 2.4% {688ms}
FormCanvas(Canvas)>>fullDraw:
| | 2.4% {688ms}
TextMorphForEditView(Morph)>>fullDrawOn:
| | 2.4% {687ms}
FormCanvas(Canvas)>>drawMorph:
| | 2.4%
{687ms} FormCanvas(Canvas)>>draw:
| | 2.4%
{686ms} TextMorphForEditView(TextMorph)>>drawOn:
| | 2.4% {685ms} FormCanvas>>paragraph:bounds:color:
| | 2.4% {685ms} NewParagraph>>displayOn:using:at:
| | 2.4% {685ms}
BitBltDisplayScanner(DisplayScanner)>>displayLine:offset:leftInRun:
| | 2.3% {661ms} BitBltDisplayScanner>>displayString:from:to:at:
| | 2.3% {661ms} StrikeFont>>displayString:on:from:to:at:kern:
| | 1.3% {364ms} GrafPort(BitBlt)>>displayString:from:to:at:strikeFont:kern:
| | |1.3% {363ms}
GrafPort(BitBlt)>>basicDisplayString:from:to:at:strikeFont:kern:
| | 1.1% {297ms} Point>>=
| 1.8% {496ms} primitives
1.3% {354ms} PluggableTextMorphPlus(PluggableTextMorph)>>handleEdit:
**Leaves**
67.0% {18857ms} ProcessorScheduler class>>idleProcess
5.4% {1505ms} Array(SequenceableCollection)>>first
2.5% {704ms} Point>>=
2.3% {644ms} Array(SequenceableCollection)>>do:
2.0% {558ms} LargePositiveInteger>>\\
1.9% {540ms} ByteArray>>bitXor:
1.9% {536ms}
GrafPort(BitBlt)>>basicDisplayString:from:to:at:strikeFont:kern:
1.6% {438ms} SHA1>>finalHash
1.4% {385ms} LargePositiveInteger(Integer)>>bitShift:
1.4% {383ms} SHA1>>hashStream:
1.3% {362ms} SimpleBorder>>width
**Memory**
old +0 bytes
young +27,152 bytes
used +27,152 bytes
free -27,152 bytes
**GCs**
full 0 totalling 0 ms (0% uptime)
incr 558 totalling 198 ms (0.7% uptime), avg 0.4 ms
tenures 11,171 (avg 0 GCs/tenure)
root table 0 overflows
Dec. 15, 2016
Re: [Pharo-users] What can we look forward to in 2017?
by horrido
You've inspired me to consider a new subproject. It's tentatively called
"Smalltalk Showcase" (although I'll try to come up with a better name) and
it will present a series of stories about Pharo/Smalltalk developments that
demonstrate the incredible versatility and usefulness of Smalltalk. (It
doesn't have to be Pharo, but I'll be pleasantly surprised if there are cool
developments in Squeak, Cincom, Dolphin, GNU, etc.)
Here's an open call to Pharoers (and Smalltalkers) everywhere: Submit a
favourite project, including a URL to a website or repository that shows the
project in the best light, as well as an "abstract" that nicely summarizes
what the project is trying to accomplish. I'll select the ones that are most
interesting and do work-ups on them. If necessary, I'll query for more
details in an email reply. Send all submissions to: richard.eng(a)outlook.com
Most appreciated.
By the way, the first story will be on Grafoscopio.
--
View this message in context: http://forum.world.st/What-can-we-look-forward-to-in-2017-tp4926791p4926986…
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Dec. 15, 2016
Re: [Pharo-users] real world pharo web application set ups
by Sven Van Caekenberghe
> On 14 Dec 2016, at 23:29, Vitor Medina Cruz <vitormcruz(a)gmail.com> wrote:
>
> Pharo don't have non-blocking I/O?
It certainly does at the networking level, but some native code interfaces might not act so nice.
> On Wed, Dec 14, 2016 at 6:59 PM, Ramon Leon <ramon.leon(a)allresnet.com> wrote:
> On 12/14/2016 12:09 PM, Esteban A. Maringolo wrote:
> Can you extend on suspending the UI process? I never did that.
>
> I feed my images a start script on the command line
>
> pharo-vm-nox \
> -vm-sound-null -vm-display-null \
> /var/pharo/app.image \
> /var/pharo/startScript
>
> startScript containing one line (among others) like so...
>
> Project uiProcess suspend.
>
> I'm on an older Pharo, but I presume the newer ones are the same or similar. No sense in wasting CPU on a UI in a headless image
>
> Won't the idle use add up?
>
> Sure eventually, but you don't run more than a 2 or so per core so that'll never be a problem. You shouldn't be running 5 images on a single core, let alone more.
>
> In my case I served up to 20 concurrent users (out of ~100 total) with
> only 5 images. Plus another two images for the REST API. In a dual
> core server.
>
> That's barely a server, most laptops these days have more cores. Rent a virtual server with a dozen or more cores, then you can run a few images per core without the idle mattering at all and run 2 dozen images in total per 12 core server.
>
> Scale by adding cores and ram allowing you to run more images per box; or scale by running more boxes, ultimately, you need to spread out the load across many many cores.
>
> --
> Ramon Leon
>
>
>
Dec. 14, 2016
Re: [Pharo-users] real world pharo web application set ups
by phil@highoctane.be
I can try that: I've some 48-core 500+ GB RAM boxes around at the moment.
If someone can make me a test script, can run it.
Phil
On Wed, Dec 14, 2016 at 8:54 PM, Stephan Eggermont <stephan(a)stack.nl> wrote:
> On 14/12/16 19:41, Dimitris Chloupis wrote:
>
>> That 5% idle CPU consumption is not the only problem, creating a new
>> process will add additional overheads anyway so it does not make sense
>> to have more pharo processes than CPU cores.
>>
>
> You can probably run a few thousand images on a single high-end x86 server
> (2*22 Core Xeon, 1TB ram). I just started 21 images on my dual-core i5 MBP.
> top tells me my system is 75-80% idle, pharo processes taking 2-3%CPU and
> 1.6GB MEM (33MB-146MB)
>
> Stephan
>
>
>
>
>
Dec. 14, 2016
Re: [Pharo-users] real world pharo web application set ups
by Vitor Medina Cruz
Pharo don't have non-blocking I/O?
On Wed, Dec 14, 2016 at 6:59 PM, Ramon Leon <ramon.leon(a)allresnet.com>
wrote:
> On 12/14/2016 12:09 PM, Esteban A. Maringolo wrote:
>
>> Can you extend on suspending the UI process? I never did that.
>>
>
> I feed my images a start script on the command line
>
> pharo-vm-nox \
> -vm-sound-null -vm-display-null \
> /var/pharo/app.image \
> /var/pharo/startScript
>
> startScript containing one line (among others) like so...
>
> Project uiProcess suspend.
>
> I'm on an older Pharo, but I presume the newer ones are the same or
> similar. No sense in wasting CPU on a UI in a headless image
>
> Won't the idle use add up?
>>
>
> Sure eventually, but you don't run more than a 2 or so per core so that'll
> never be a problem. You shouldn't be running 5 images on a single core,
> let alone more.
>
> In my case I served up to 20 concurrent users (out of ~100 total) with
>> only 5 images. Plus another two images for the REST API. In a dual
>> core server.
>>
>
> That's barely a server, most laptops these days have more cores. Rent a
> virtual server with a dozen or more cores, then you can run a few images
> per core without the idle mattering at all and run 2 dozen images in total
> per 12 core server.
>
> Scale by adding cores and ram allowing you to run more images per box; or
> scale by running more boxes, ultimately, you need to spread out the load
> across many many cores.
>
> --
> Ramon Leon
>
>
>
Dec. 14, 2016
Re: [Pharo-users] real world pharo web application set ups
by Ramon Leon
On 12/14/2016 12:09 PM, Esteban A. Maringolo wrote:
> Can you extend on suspending the UI process? I never did that.
I feed my images a start script on the command line
pharo-vm-nox \
-vm-sound-null -vm-display-null \
/var/pharo/app.image \
/var/pharo/startScript
startScript containing one line (among others) like so...
Project uiProcess suspend.
I'm on an older Pharo, but I presume the newer ones are the same or
similar. No sense in wasting CPU on a UI in a headless image
> Won't the idle use add up?
Sure eventually, but you don't run more than a 2 or so per core so
that'll never be a problem. You shouldn't be running 5 images on a
single core, let alone more.
> In my case I served up to 20 concurrent users (out of ~100 total) with
> only 5 images. Plus another two images for the REST API. In a dual
> core server.
That's barely a server, most laptops these days have more cores. Rent a
virtual server with a dozen or more cores, then you can run a few images
per core without the idle mattering at all and run 2 dozen images in
total per 12 core server.
Scale by adding cores and ram allowing you to run more images per box;
or scale by running more boxes, ultimately, you need to spread out the
load across many many cores.
--
Ramon Leon
Dec. 14, 2016
Re: [Pharo-users] real world pharo web application set ups
by Esteban A. Maringolo
2016-12-14 16:31 GMT-03:00 Ramon Leon <ramon.leon(a)allresnet.com>:
> On 12/14/2016 10:27 AM, Esteban A. Maringolo wrote:
>>
>> Memory is cheap, and the only limit now is CPU, the current Pharo
>> image has an idle CPU consumption ~5%, so you can't have many
>> concurrent images running in the same machine.
>
>
> Sure you can, a multi-core server isn't going to get maxed out by idle CPU
> consumption as each image will only do that on a single core; you can also
> reduce consumption on headless images by suspending the UI process which
> isn't needed getting you down to perhaps 2-3%.
Can you extend on suspending the UI process? I never did that.
>> whilst 10 idle Pharo images will consume 50%.
> Only on a single CPU machine which isn't what you're going to have on a
> server. Running two images per core on a 12 core virtual server and you'll
> be sitting more like 5-6% idle which is totally fine. Spread that across 10
> or 15 virtual servers and you can handle 1000 concurrent users just fine.
Won't the idle use add up?
In my case I served up to 20 concurrent users (out of ~100 total) with
only 5 images. Plus another two images for the REST API. In a dual
core server.
Regards.
Esteban A. Maringolo
Dec. 14, 2016