Follow-up Comment #11, bug #18421 (project mypaint):
I have reviewd 07a1ae4 and tested a bit. Nice work. Here are my comments:
Performance:
I don't notice autosave at all when working on small images (my usual working
size). But I do notice the processing when auto-saving a big image. Don't get
me wrong, I think this is a very small price to pay for autosave. But some
analysis:
With a big image, I get processing chunk sizes of usually 40ms, with a peak
of 150ms at the very beginning. It is not causing lag, but a reduced
framerate. From my feeling, it's about half the framerate I usually have. I
think only the numerous 40ms chunks are really responsible for that. The
thumbnail itself took 100ms for that image.
For comparision I measured the strokemap processing chunks: they are all just
below 0.3ms, but I saw a single isolated peak of 4.6ms. While debugging this,
I also noted that we have several performance problems at split_stroke() time
independent of your changes. You can notice them when you change the color in
mid-stroke. I will check those.
Functionality:
I would also want to autosave to work before I give the file a name. And I
think most artists would prefer if autosaves didn't go into the same directory
as the file. Maybe we can delete old autosaves if the artist didn't decide to
recover?
The autosave filename should not go into the file history. I have a habit of
pressing F3 or F6 to load my recent image, and now I have
scrap059_a_AUTOSAVE_AUTOSAVE_AUTOSAVE.ora as my current filename :-)
Coding details:
Looks like we go through the same "copy the document, then save the copy"
code for normal saves. I like this, because that way we only have a single
codepath that needs to be tested.
I'm somewhat sceptical about the use the "copy" module. Wouldn't it be easier
to call a .copy method on the class, if we implement our own anyway? It would
be more explicit, easier to see what happens when reading the code. The python
dict also has a .copy method.
WARNING: TiledSurface.save() called from somewhere
This is mainly used for testing, eg. tests/test_mypaintlib.py, where the
resulting PNGs are compared.
I haven't tested exceptions yet (eg. no space on device).
_______________________________________________________
Reply to this item at:
<http://gna.org/bugs/?18421>
_______________________________________________
Nachricht geschickt von/durch Gna!
http://gna.org/
_______________________________________________
Mypaint-bugs mailing list
[email protected]
https://mail.gna.org/listinfo/mypaint-bugs