On Wed, 2015-07-22 at 14:55 +0200, stepharo wrote:
> Jan do you have a scenario where we can see the performance issue?
> 

Hmm...actually not reproducible one. Here's the story: 

It happened me couple times that the CPU (core) usage was 100% when
I typed in Nautilus. When I stopped typing, CPU usage went to 5%
(which is "normal" IIUC). 

I saved the image when it exhibited the performance problem, but the
other day it failed to open at all. VM crashed before opening the
window (log attached if anyone's interested - from the trace it looks
like freetype plugin's doing something wrong. 

Funny enough after not having time for this for couple days,
I tried again and the (i) the image does start and (ii) it does no
longer exhibit the poor performance. 

I'm bloody sure nothing changed in my system meanwhile (no VM change,
no upgrade of system libraries, etc). The image that crashed used no 
FFI calls except those done by system as shipped. So in the end
something else seems to be broken and Rubric performance could be 
just a consequence. Maybe I suspected the wrong guy. Sorry about that.

Best, Jan


> 
> Le 22/7/15 10:03, Jan Vrany a écrit :
> > On Tue, 2015-07-21 at 23:38 +0200, Franck Warlouzet wrote:
> > > Hello Jan,
> > > 
> > > On Pharo 5, I don't think so (unless you want to reload the very 
> > > old
> > > commits from nautilus). PluggableTextMorph will be remove so we 
> > > will
> > > not put an option to switch between Rubric or that.
> > Right. Is there a way to dig out an older image prior the switch?
> > 
> > > What do not you like with Rubric ?
> > It's not that I don't like it, but in my very case it burns
> > my CPU. Looks like a performance problem.
> > 
> > Thanks! Jan
> > 
> > > Franck
> > > 
> > > > From: [email protected]
> > > > To: [email protected]
> > > > Date: Tue, 21 Jul 2015 22:19:05 +0100
> > > > Subject: [Pharo-dev] Disabling Rubric in Nautilus
> > > > 
> > > > Hi there,
> > > > 
> > > > is there a way to disable Rubric in Nautilus and get back
> > > > to PluggableTextMorph or whichever beast was used before?
> > > > Quick search in settings did not help.
> > > > 
> > > > Jan
> > > > 
> > 
> 
> 
Segmentation fault Fri Jul 24 13:15:36 2015


/home/jv/Projects/Pharo/5.0/pharo-vm/pharo
pharo VM version: 3.9-7 #1 Thu Apr  2 00:51:45 CEST 2015 gcc 4.6.3 [Production 
ITHB VM]
Built from: NBCoInterpreter NativeBoost-CogPlugin-EstebanLorenzano.21 uuid: 
4d9b9bdf-2dfa-4c0b-99eb-5b110dadc697 Apr  2 2015
With: NBCogit NativeBoost-CogPlugin-EstebanLorenzano.21 uuid: 
4d9b9bdf-2dfa-4c0b-99eb-5b110dadc697 Apr  2 2015
Revision: https://github.com/pharo-project/pharo-vm.git Commit: 
32d18ba0f2db9bee7f3bdbf16bdb24fe4801cfc5 Date: 2015-03-24 11:08:14 +0100 By: 
Esteban Lorenzano <[email protected]> Jenkins build #14904
Build host: Linux pharo-linux 3.2.0-31-generic-pae #50-Ubuntu SMP Fri Sep 7 
16:39:45 UTC 2012 i686 i686 i386 GNU/Linux
plugin path: /home/jv/Projects/Pharo/5.0/pharo-vm/ [default: 
/home/jv/Projects/Pharo/5.0/pharo-vm/]


C stack backtrace & registers:
        eax 0xffd768a4 ebx 0xffd767c0 ecx 0xffd76858 edx 0xffd7680c
        edi 0xffd76690 esi 0xffd76690 ebp 0xffd76728 esp 0xffd76774
        eip 0xffd76988
*[0xffd76988]
/home/jv/Projects/Pharo/5.0/pharo-vm/pharo[0x80a33a2]
/home/jv/Projects/Pharo/5.0/pharo-vm/pharo[0x80a3706]
linux-gate.so.1(__kernel_rt_sigreturn+0x0)[0xf76febe0]
/usr/lib/i386-linux-gnu/libfreetype.so.6(FT_Stream_ReadULong+0x6e)[0xb6ea540e]
/usr/lib/i386-linux-gnu/libfreetype.so.6(+0x52407)[0xb6ee8407]
/usr/lib/i386-linux-gnu/libfreetype.so.6(+0x23d8a)[0xb6eb9d8a]
/usr/lib/i386-linux-gnu/libfreetype.so.6(+0x10eab)[0xb6ea6eab]
/usr/lib/i386-linux-gnu/libfreetype.so.6(FT_Open_Face+0x2d9)[0xb6ea9bb9]
/usr/lib/i386-linux-gnu/libfreetype.so.6(FT_New_Memory_Face+0x5a)[0xb6eaa1ca]
/home/jv/Projects/Pharo/5.0/pharo-vm/libFT2Plugin.so(primitiveNewMemoryFaceFromExternalMemoryAndIndex+0xfa)[0xf70af13a]
/home/jv/Projects/Pharo/5.0/pharo-vm/pharo[0x80799ca]
/home/jv/Projects/Pharo/5.0/pharo-vm/pharo(interpret+0x234c)[0x809741c]
/home/jv/Projects/Pharo/5.0/pharo-vm/pharo(enterSmalltalkExecutiveImplementation+0x59)[0x809a619]
/home/jv/Projects/Pharo/5.0/pharo-vm/pharo(interpret+0x1ee)[0x80952be]
/home/jv/Projects/Pharo/5.0/pharo-vm/pharo(main+0x2b2)[0x805ba82]
/lib/i386-linux-gnu/i686/cmov/libc.so.6(__libc_start_main+0xf3)[0xf74d7a63]
/home/jv/Projects/Pharo/5.0/pharo-vm/pharo[0x805bda1]
/home/jv/Projects/Pharo/5.0/pharo-vm/pharo[0x810c90c]


Smalltalk stack dump:
0xffd84e54 I [] in FreeTypeFace(FT2Face)>newFaceFromExternalMemory:index: 
0xb8d8f240: a(n) FreeTypeFace
0xffd84e6c M BlockClosure>on:do: 0xb984f828: a(n) BlockClosure
0xffd84e98 I FreeTypeFace(FT2Face)>newFaceFromExternalMemory:index: 0xb8d8f240: 
a(n) FreeTypeFace
0xffd84ec4 I FreeTypeFace>newFaceFromExternalMemory:index: 0xb8d8f240: a(n) 
FreeTypeFace
0xffd84eec I FreeTypeFace>create 0xb8d8f240: a(n) FreeTypeFace
0xffd84f0c I FreeTypeFace>validate 0xb8d8f240: a(n) FreeTypeFace
0xffd84f2c I FreeTypeFont>face 0xb984f5ec: a(n) FreeTypeFont
0xffd84f68 I FreeTypeFontProvider>fontFor:familyName: 0xb7751b70: a(n) 
FreeTypeFontProvider
0xffd83dd0 M [] in 
LogicalFontManager>bestFontFor:whenFindingAlternativeIgnoreAll: 0xb7f17614: 
a(n) LogicalFontManager
0xffd83df4 M OrderedCollection>do: 0xb7f17620: a(n) OrderedCollection
0xffd83e20 I [] in 
LogicalFontManager>bestFontFor:whenFindingAlternativeIgnoreAll: 0xb7f17614: 
a(n) LogicalFontManager
0xffd83e44 M Array(SequenceableCollection)>do: 0xb984e734: a(n) Array
0xffd83e6c I LogicalFontManager>bestFontFor:whenFindingAlternativeIgnoreAll: 
0xb7f17614: a(n) LogicalFontManager
0xffd83e94 I LogicalFontManager>bestFontFor: 0xb7f17614: a(n) LogicalFontManager
0xffd83eb8 I LogicalFont>findRealFont 0xb7f175dc: a(n) LogicalFont
0xffd83ed8 I LogicalFont>realFont 0xb7f175dc: a(n) LogicalFont
0xffd83ef8 I LogicalFont>height 0xb7f175dc: a(n) LogicalFont
0xffd83f20 I LazyListMorph>rowAtLocation: 0xb8bda118: a(n) LazyListMorph
0xffd83f44 I LazyListMorph>bottomVisibleRowForCanvas: 0xb8bda118: a(n) 
LazyListMorph
0xffd83f6c M LazyListMorph>drawOn: 0xb8bda118: a(n) LazyListMorph
0xffd82e04 M FormCanvas(Canvas)>draw: 0xb984da6c: a(n) FormCanvas
0xffd82e20 M FormCanvas(Canvas)>drawMorph: 0xb984da6c: a(n) FormCanvas
0xffd82e40 M [] in LazyListMorph(Morph)>fullDrawOn: 0xb8bda118: a(n) 
LazyListMorph
0xffd82e58 M FormCanvas>roundCornersOf:in:during: 0xb984da6c: a(n) FormCanvas
0xffd82e7c M FormCanvas(Canvas)>roundCornersOf:during: 0xb984da6c: a(n) 
FormCanvas
0xffd82ea0 M [] in LazyListMorph(Morph)>fullDrawOn: 0xb8bda118: a(n) 
LazyListMorph
0xffd82eb8 M BlockClosure>on:do: 0xb984dd04: a(n) BlockClosure
0xffd82ed8 M LazyListMorph(Morph)>fullDrawOn: 0xb8bda118: a(n) LazyListMorph
0xffd82ef4 M FormCanvas(Canvas)>fullDraw: 0xb984da6c: a(n) FormCanvas
0xffd82f10 M FormCanvas(Canvas)>fullDrawMorph: 0xb984da6c: a(n) FormCanvas
0xffd82f30 M [] in TransformMorph>drawSubmorphsOn: 0xb8bda0a8: a(n) 
TransformMorph
0xffd82f50 M Array(SequenceableCollection)>reverseDo: 0xb8bda190: a(n) Array
0xffd82f6c M [] in TransformMorph>drawSubmorphsOn: 0xb8bda0a8: a(n) 
TransformMorph
0xffd81e70 I FormCanvas>transformBy:clippingTo:during:smoothing: 0xb984b6e4: 
a(n) FormCanvas
0xffd81e98 M TransformMorph>drawSubmorphsOn: 0xb8bda0a8: a(n) TransformMorph
0xffd81eb8 M [] in TransformMorph(Morph)>fullDrawOn: 0xb8bda0a8: a(n) 
TransformMorph
0xffd81ed0 M FormCanvas>roundCornersOf:in:during: 0xb984b6e4: a(n) FormCanvas
0xffd81ef4 M FormCanvas(Canvas)>roundCornersOf:during: 0xb984b6e4: a(n) 
FormCanvas
0xffd81f18 M [] in TransformMorph(Morph)>fullDrawOn: 0xb8bda0a8: a(n) 
TransformMorph
0xffd81f30 M BlockClosure>on:do: 0xb984d208: a(n) BlockClosure
0xffd81f50 M TransformMorph(Morph)>fullDrawOn: 0xb8bda0a8: a(n) TransformMorph
0xffd81f6c M FormCanvas(Canvas)>fullDraw: 0xb984b6e4: a(n) FormCanvas
0xffd7fe1c M FormCanvas(Canvas)>fullDrawMorph: 0xb984b6e4: a(n) FormCanvas
0xffd7fe3c M [] in PluggableListMorph(Morph)>drawSubmorphsOn: 0xb8bd9b14: a(n) 
PluggableListMorph
0xffd7fe5c M Array(SequenceableCollection)>reverseDo: 0xb8d70aac: a(n) Array
0xffd7fe78 M [] in PluggableListMorph(Morph)>drawSubmorphsOn: 0xb8bd9b14: a(n) 
PluggableListMorph
0xffd7fe98 M PluggableListMorph(Morph)>drawSubmorphsOn: 0xb8bd9b14: a(n) 
PluggableListMorph
0xffd7feb4 M PluggableListMorph(ScrollPane)>drawSubmorphsOn: 0xb8bd9b14: a(n) 
PluggableListMorph
0xffd7fed4 M [] in PluggableListMorph(Morph)>fullDrawOn: 0xb8bd9b14: a(n) 
PluggableListMorph
0xffd7feec M FormCanvas>roundCornersOf:in:during: 0xb984b6e4: a(n) FormCanvas
0xffd7ff10 M FormCanvas(Canvas)>roundCornersOf:during: 0xb984b6e4: a(n) 
FormCanvas
0xffd7ff34 M [] in PluggableListMorph(Morph)>fullDrawOn: 0xb8bd9b14: a(n) 
PluggableListMorph
0xffd7ff4c M BlockClosure>on:do: 0xb984c418: a(n) BlockClosure
0xffd7ff6c M PluggableListMorph(Morph)>fullDrawOn: 0xb8bd9b14: a(n) 
PluggableListMorph
0xffd80e54 M FormCanvas(Canvas)>fullDraw: 0xb984b6e4: a(n) FormCanvas
0xffd80e70 M FormCanvas(Canvas)>fullDrawMorph: 0xb984b6e4: a(n) FormCanvas
0xffd80e90 M [] in SystemWindow(Morph)>drawSubmorphsOn: 0xb8bcf9c0: a(n) 
SystemWindow
0xffd80eb8 I Array(SequenceableCollection)>reverseDo: 0xb8bdd944: a(n) Array
0xffd80edc I [] in SystemWindow(Morph)>drawSubmorphsOn: 0xb8bcf9c0: a(n) 
SystemWindow
0xffd80f00 I FormCanvas>clipBy:during: 0xb984a300: a(n) FormCanvas
0xffd80f2c I SystemWindow(Morph)>drawSubmorphsOn: 0xb8bcf9c0: a(n) SystemWindow
0xffd80f4c M [] in SystemWindow(Morph)>fullDrawOn: 0xb8bcf9c0: a(n) SystemWindow
0xffd80f64 M FormCanvas>roundCornersOf:in:during: 0xb984a300: a(n) FormCanvas
0xffd7edd4 M FormCanvas(Canvas)>roundCornersOf:during: 0xb984a300: a(n) 
FormCanvas
0xffd7edf8 M [] in SystemWindow(Morph)>fullDrawOn: 0xb8bcf9c0: a(n) SystemWindow
0xffd7ee10 M BlockClosure>on:do: 0xb984a5a4: a(n) BlockClosure
0xffd7ee30 M SystemWindow(Morph)>fullDrawOn: 0xb8bcf9c0: a(n) SystemWindow
0xffd7ee4c M FormCanvas(Canvas)>fullDraw: 0xb984a300: a(n) FormCanvas
0xffd7ee70 I FormCanvas(Canvas)>fullDrawMorph: 0xb984a300: a(n) FormCanvas
0xffd7eec4 M [] in WorldState>drawWorld:submorphs:invalidAreasOn: 0xb753a1dc: 
a(n) WorldState
0xffd7eefc I Rectangle>allAreasOutsideList:startingAt:do: 0xb980d51c: a(n) 
Rectangle
0xffd7ef28 I Rectangle>allAreasOutsideList:do: 0xb980d51c: a(n) Rectangle
0xffd7ef6c I [] in WorldState>drawWorld:submorphs:invalidAreasOn: 0xb753a1dc: 
a(n) WorldState
0xffd7ddec M Array(SequenceableCollection)>do: 0xb981a488: a(n) Array
0xffd7de24 I WorldState>drawWorld:submorphs:invalidAreasOn: 0xb753a1dc: a(n) 
WorldState
0xffd7de5c M [] in WorldState>displayWorld:submorphs: 0xb753a1dc: a(n) 
WorldState
0xffd7de7c I FormCanvas>roundCornersOf:in:during: 0xb981a358: a(n) FormCanvas
0xffd7dea8 I FormCanvas(Canvas)>roundCornersOf:during: 0xb981a358: a(n) 
FormCanvas
0xffd7ded8 I WorldState>displayWorld:submorphs: 0xb753a1dc: a(n) WorldState
0xffd7df00 I WorldMorph>displayWorld 0xb77aed00: a(n) WorldMorph
0xffd7df2c I TaskbarMorph(Morph)>snapToEdgeIfAppropriate 0xb773eb28: a(n) 
TaskbarMorph
0xffd7df4c I TaskbarMorph>updateBounds 0xb773eb28: a(n) TaskbarMorph
0xffd7df6c I [] in WorldMorph(PasteUpMorph)>restoreMainDockingBarDisplay 
0xb77aed00: a(n) WorldMorph
0xffd79e2c M Array(SequenceableCollection)>do: 0xb980fe50: a(n) Array
0xffd79e50 I WorldMorph(PasteUpMorph)>restoreMainDockingBarDisplay 0xb77aed00: 
a(n) WorldMorph
0xffd79e74 I WorldMorph(PasteUpMorph)>restoreMorphicDisplay 0xb77aed00: a(n) 
WorldMorph
0xffd79e98 I WorldMorph class>startUp 0xb77abb00: a(n) WorldMorph class
0xffd79eb0 M WorldMorph class(Behavior)>startUp: 0xb77abb00: a(n) WorldMorph 
class
0xffd79ed8 M [] in SmalltalkImage>send:toClassesNamedIn:with: 0xb819a01c: a(n) 
SmalltalkImage
0xffd79ef0 M BlockClosure>on:do: 0xb980d410: a(n) BlockClosure
0xffd79f10 M SmalltalkImage>logStartUpErrorDuring:into:tryDebugger: 0xb819a01c: 
a(n) SmalltalkImage
0xffd79f48 M [] in SmalltalkImage>send:toClassesNamedIn:with: 0xb819a01c: a(n) 
SmalltalkImage
0xffd79f6c M OrderedCollection>do: 0xb753a098: a(n) OrderedCollection
0xffd78e6c I SmalltalkImage>send:toClassesNamedIn:with: 0xb819a01c: a(n) 
SmalltalkImage
0xffd78e98 I SmalltalkImage>processStartUpList: 0xb819a01c: a(n) SmalltalkImage
0xffd78ec8 I [] in SmalltalkImage>startupImage:snapshotWorked: 0xb819a01c: a(n) 
SmalltalkImage
0xffd78ee8 M BlockClosure>ensure: 0xb927ff60: a(n) BlockClosure
0xffd78f0c I MorphicUIManager(UIManager)>boot:during: 0xb75ea6d8: a(n) 
MorphicUIManager
0xffd78f38 I SmalltalkImage>startupImage:snapshotWorked: 0xb819a01c: a(n) 
SmalltalkImage
0xffd78f68 I SmalltalkImage>snapshot:andQuit: 0xb819a01c: a(n) SmalltalkImage
0xb927f738 s [] in WorldState class>saveAndQuit
0xb927f794 s BlockClosure>ensure:
0xb924d758 s CursorWithMask(Cursor)>showWhile:
0xb924d6ec s WorldState class>saveAndQuit
0xb927f7f0 s [] in ToggleMenuItemMorph(MenuItemMorph)>invokeWithEvent:
0xb927f84c s BlockClosure>ensure:
0xb924d67c s CursorWithMask(Cursor)>showWhile:
0xb924d59c s ToggleMenuItemMorph(MenuItemMorph)>invokeWithEvent:
0xb924d540 s ToggleMenuItemMorph(MenuItemMorph)>mouseUp:
0xb927f904 s ToggleMenuItemMorph(MenuItemMorph)>handleMouseUp:
0xb927f960 s MouseButtonEvent>sentTo:
0xb927f9bc s ToggleMenuItemMorph(Morph)>handleEvent:
0xb927fa18 s MorphicEventDispatcher>dispatchDefault:with:
0xb927fa74 s MorphicEventDispatcher>handleMouseUp:
0xb927fad0 s MouseButtonEvent>sentTo:
0xb927fb2c s [] in MorphicEventDispatcher>dispatchEvent:with:
0xb927fb88 s BlockClosure>ensure:
0xb924d4c0 s MorphicEventDispatcher>dispatchEvent:with:
0xb927fbe4 s ToggleMenuItemMorph(Morph)>processEvent:using:
0xb924d3dc s MorphicEventDispatcher>dispatchDefault:with:
0xb924d438 s MorphicEventDispatcher>handleMouseUp:
0xb927f3fc s MouseButtonEvent>sentTo:
0xb927f458 s [] in MorphicEventDispatcher>dispatchEvent:with:
0xb927f4b4 s BlockClosure>ensure:
0xb924d35c s MorphicEventDispatcher>dispatchEvent:with:
0xb927f510 s MenuMorph(Morph)>processEvent:using:
0xb927f56c s MenuMorph(Morph)>processEvent:
0xb927f5c8 s MenuMorph>handleFocusEvent:
0xb927f624 s [] in HandMorph>sendFocusEvent:to:clear:
0xb927f680 s BlockClosure>on:do:
0xb924d25c s WorldMorph(PasteUpMorph)>becomeActiveDuring:
0xb924d1e4 s HandMorph>sendFocusEvent:to:clear:
0xb924d2d4 s HandMorph>sendEvent:focus:clear:
0xb924d170 s HandMorph>sendMouseEvent:
0xb927fc40 s HandMorph>handleEvent:
0xb927fc9c s HandMorph>processEvents
0xb927fcf8 s [] in WorldState>doOneCycleNowFor:
0xb927fd54 s Array(SequenceableCollection)>do:
0xb927fdb0 s WorldState>handsDo:
0xb924cfec s WorldState>doOneCycleNowFor:
0xb927fe0c s WorldState>doOneCycleFor:
0xb927fe68 s WorldMorph>doOneCycle
0xb8d854e8 s [] in MorphicUIManager>spawnNewProcess
0xb8d853d4 s [] in BlockClosure>newProcess

Most recent primitives
basicNew
@
@
@
@
basicNew
@
@
shallowCopy
basicNew
@
@
basicNew
@
@
truncated
truncated
truncated
@
@
@
basicNew
@
@
@
@
@
basicNew
@
@
@
@
@
basicNew
@
@
@
@
@
basicNew
@
@
basicNew
@
@
basicNew
@
@
@
@
@
basicNew
@
@
basicNew
@
@
basicNew
@
@
@
copyBits
@
@
basicNew
@
@
basicNew
@
@
basicNew
@
@
@
basicNew
new:
@
basicNew
@
@
at:put:
@
basicNew
@
@
at:put:
@
@
basicNew
@
@
at:put:
@
@
basicNew
@
@
at:put:
copyBits
copyBits
copyBits
copyBits
@
@
basicNew
@
@
copyBits
copyBits
@
@
@
basicNew
@
@
@
@
basicNew
@
@
basicNew
@
@
basicNew
@
@
@
perform:with:
perform:with:
@
truncated
truncated
@
@
@
@
basicNew
@
@
@
@
basicNew
@
@
shallowCopy
basicNew
truncated
truncated
truncated
@
@
basicNew
@
@
truncated
truncated
truncated
~=
@
@
@
basicNew
@
@
@
@
@
basicNew
@
@
@
@
basicNew
@
@
basicNew
@
perform:with:
@
basicNew
@
@
@
copyBits
@
@
@
basicNew
@
@
@
basicNew
new:
value:
value:
value
basicNew
value
primCurrentLibrary
stringHash:initialHash:
compare:with:collated:
basicNew
new:
value:
at:put:
value:
at:put:
at:put:
at:put:
value:value:
sqrt
truncated
truncated
bitShiftMagnitude:
digitLength
digitAt:
timesTwoPower:
value:value:
truncated
truncated
truncated
truncated
bitShiftMagnitude:
timesTwoPower:
truncated
truncated
truncated
truncated
truncated
truncated
truncated
truncated
truncated
truncated
bitShiftMagnitude:
timesTwoPower:
basicNew
someInstance
nextInstance
basicNew
primUTCMicrosecondsClock
*
basicNew
primOffset
basicNew
digitCompare:
//
digitAdd:
normalize
\\
digitCompare:
//
\\
value:
value
primNewFaceFromExternalMemory:size:index:

stack page bytes 4096 available headroom 3300 minimum unused headroom 3528

        (Segmentation fault)
./pharo-ui: line 11: 19134 Aborted                 "$DIR"/"pharo-vm/pharo" "$@"
Linux sao 4.0.0-2-amd64 #1 SMP Debian 4.0.8-1 (2015-07-11) x86_64 GNU/Linux

Reply via email to