Problems with Win32/WinCE VMs - backing out of changes
marcel at system.de
Wed Sep 1 15:12:24 UTC 1999
> From: Bob Arning <arning at charm.net>
> On Wed, 1 Sep 1999 15:41:18 +0200 Marcel Weiher <marcel at system.de> =
> >I guess it wouldn't be quite as bad if images were much smaller. =20
> >After all, it really is rather silly to have 5 or more copies of the =
> >image, which are probably 99% identical.
> While not wishing to argue against improvements in the current =
> architecture, "silly" seems an inappropriate criticism.
The effect of lugging 4-6 MB around when the changes are typically
on the order of a couple of KB, a wastage factor of 1:1000 is silly
to me. Copying the images + changes files takes a noticable amount
of time on my machine, when it really shouldn't. Your mileage may
> Given disk =
> prices on the order of US$0.04 per megabyte, the cost of storing an =
> additional image is well under a dollar. I keep lots of images
> both current and earlier releases, both pristine and modified.
Cost of storage is really not the problem.
> Often I =
> have more than one up and running concurrently, each particularly =
> suited to the task at hand. I don't see it as a problem, rather I =
> leverage the capacity of my computer to provide an additional
level of =
> isolation between potentially conflicting threads of development.
The situation gets worse with multi-tasking because all that memory
is 'dirty' from the point of view of the operating system, so each
additional Squeak task gets the *full* RAM penalty, just like current
Java VMs do (Of course, Java's footprint is bigger, so the problem
is worse, but structurally it's the same problem).
I consider the good VM systems with mapping, protection, sharing
etc. one of the major benefits of modern UNIX systems (NT to a lesser
extent); they enable a lot of useful functionality and it's a shame
to lose it again.
> Duplicating that level of isolation within one image may take a =
> non-trivial effort to get completely right.
With the current approach (try to split of sub-images, retract
changes etc.) it is probably quite hard, maybe impossible. A
slightly different approach based on reading/mapping non-mutable
structures into a (smaller) mutable image should be easier,
especially if initial development is done on a machine with real
virtual memory that can be used to guard against/track accidental
I'd be willing to give it a shot if I had assistance from a
knowledgeable Squeak/VM hacker.
More information about the Squeak-dev