Pharo 8 stability and large images

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Pharo 8 stability and large images

Jimmie Houchin-5
I am in the midst of a very long term, in my spare time, project written
in Pharo 7.

I have at times been very frustrated with various problems. Images
becoming unstable. Images crashing. Images crashing and unopenable after
crashing. With seeming loss of code not yet committed. Images very
unstable with memory greater than 500mb. The larger the worse. I
regularly have images that exceed 1gb. It is without effort to grow
images to such size. These images would increasingly become unstable,
slow and unresponsive. They frequently would crash. I would have to
reopen, save or commit my code and then open a new image and import my
code. So I read threads speaking about large images with great interest.

However, I persisted as I have a significant amount of code dedicated to
this project. Currently approximately 120 classes. Some of which are
private or proprietary. Over 70 public when I have cleaned up my mess
and get ready to release. And many still to be written.

As I persist, I also look around at my options. There are few things I
would even consider for a rewrite.

I this week decided to persist in my attempt to move to Pharo 8. I
generally prefer to use the latest stable. However, the first use cause
an error in saving an image which I did not understand and did not
persist through.

Currently I name my images for this project as such
SmallTrader-0.00.image as a base image setup like I want. I open up such
image and "Save As" and it automatically increments to the biggest
number in the folder such as SmallTrader-0.59.image. Then I update with
the latest code. However Pharo 8 generated an error (#+ was sent to nil)
when doing "Save As"  from an image named SmallTrader-8.000.image. So I
decided to keep on with Pharo 7. However, this week I decided not to let
that stop me and I simply renamed my image to something Pharo 8 did not
complain about, SmallTrader-8-00.image and it now "Save As" renames to
SmallTrader-8-00.1.image.

Now, I am not writing this email to complain. But rather to praise. Once
I got going on Pharo 8 this week with the latest stable VM and Image, it
has seemed to be very stable and solid. I just ran a backtest and had
naively did not pay attention to my backtest settings. The image ran the
backtest perfectly, without problem. It was stable and consistently
performant. After it completed I decided to look at the OS System
Monitor to check how much memory it was consuming because it had opened
up 252 inspect windows with a dictionary of several thousand objects
each. It was effortlessly sitting at 5.7gb and was nicely responsive in
the UI. I later nil'd the object in the Playground and did a Smalltalk
garbageCollect, and it shrank down to 400mb. Nice!

Wow. Great job guys. I am impressed. I am exceptionally pleased.

Thank you. Thank you. Thank you.

This makes me less afraid to use other time series data which run up my
memory greatly. I would be reading in over 2gb of csv files to create my
objects to operate upon. Previously it made the image incredibly
unstable and unusable. I look forward to giving it a try.

I just wanted to give you guys and gals (should there be any) a
tremendous thank you and praise report. I am greatly encouraged to
persist in my use of Pharo. And at the same time greatly encouraged to
not look elsewhere because no need. Pharo is meeting my needs with
reasonable performance and stability.

I look forward to being productively active using Pharo 8 and look
forward to the bright future Pharo 9 and beyond hold.

Thanks again for this amazing language and environment. I hope someday
to be able to repay the blessing I have received from all who have
contributed to what I enjoy today.

Jimmie Houchin







Reply | Threaded
Open this post in threaded view
|

Re: Pharo 8 stability and large images

tbrunz
I like it when a nail-biter has unexpected plot twists and resolves to a
happy ending...

This will help me sell Pharo 8 where I work.  Thanks!




--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html

Reply | Threaded
Open this post in threaded view
|

Re: Pharo 8 stability and large images

Ben Coman
In reply to this post by Jimmie Houchin-5
I haven't been very involved in Pharo 8, but its great to hear of your positive experience.
To grow Pharo its important to be able to reference positive stories from the trenches.  
Thanks for sharing.

cheers -ben

On Sat, 7 Mar 2020 at 03:08, Jimmie Houchin <[hidden email]> wrote:
I am in the midst of a very long term, in my spare time, project written
in Pharo 7.

I have at times been very frustrated with various problems. Images
becoming unstable. Images crashing. Images crashing and unopenable after
crashing. With seeming loss of code not yet committed. Images very
unstable with memory greater than 500mb. The larger the worse. I
regularly have images that exceed 1gb. It is without effort to grow
images to such size. These images would increasingly become unstable,
slow and unresponsive. They frequently would crash. I would have to
reopen, save or commit my code and then open a new image and import my
code. So I read threads speaking about large images with great interest.

However, I persisted as I have a significant amount of code dedicated to
this project. Currently approximately 120 classes. Some of which are
private or proprietary. Over 70 public when I have cleaned up my mess
and get ready to release. And many still to be written.

As I persist, I also look around at my options. There are few things I
would even consider for a rewrite.

I this week decided to persist in my attempt to move to Pharo 8. I
generally prefer to use the latest stable. However, the first use cause
an error in saving an image which I did not understand and did not
persist through.

Currently I name my images for this project as such
SmallTrader-0.00.image as a base image setup like I want. I open up such
image and "Save As" and it automatically increments to the biggest
number in the folder such as SmallTrader-0.59.image. Then I update with
the latest code. However Pharo 8 generated an error (#+ was sent to nil)
when doing "Save As"  from an image named SmallTrader-8.000.image. So I
decided to keep on with Pharo 7. However, this week I decided not to let
that stop me and I simply renamed my image to something Pharo 8 did not
complain about, SmallTrader-8-00.image and it now "Save As" renames to
SmallTrader-8-00.1.image.

Now, I am not writing this email to complain. But rather to praise. Once
I got going on Pharo 8 this week with the latest stable VM and Image, it
has seemed to be very stable and solid. I just ran a backtest and had
naively did not pay attention to my backtest settings. The image ran the
backtest perfectly, without problem. It was stable and consistently
performant. After it completed I decided to look at the OS System
Monitor to check how much memory it was consuming because it had opened
up 252 inspect windows with a dictionary of several thousand objects
each. It was effortlessly sitting at 5.7gb and was nicely responsive in
the UI. I later nil'd the object in the Playground and did a Smalltalk
garbageCollect, and it shrank down to 400mb. Nice!

Wow. Great job guys. I am impressed. I am exceptionally pleased.

Thank you. Thank you. Thank you.

This makes me less afraid to use other time series data which run up my
memory greatly. I would be reading in over 2gb of csv files to create my
objects to operate upon. Previously it made the image incredibly
unstable and unusable. I look forward to giving it a try.

I just wanted to give you guys and gals (should there be any) a
tremendous thank you and praise report. I am greatly encouraged to
persist in my use of Pharo. And at the same time greatly encouraged to
not look elsewhere because no need. Pharo is meeting my needs with
reasonable performance and stability.

I look forward to being productively active using Pharo 8 and look
forward to the bright future Pharo 9 and beyond hold.

Thanks again for this amazing language and environment. I hope someday
to be able to repay the blessing I have received from all who have
contributed to what I enjoy today.

Jimmie Houchin







Reply | Threaded
Open this post in threaded view
|

Re: Pharo 8 stability and large images

vince
In reply to this post by Jimmie Houchin-5
I am very happy to hear this as stability is something I worry about all the time. Pharo is the fastest way for me to get from thought to working code, and it is good to know that I can also depend on it for serious deployments.

I have to ask though - how does one get to an image size that is ~1gb in size? By saving working data in the image itself instead of in a database perhaps?

Vince