Skip to main content
Home Forums ShapeShifter DOES Modify System Files! ShapeShifter DOES Modify System Files!
Thread

ShapeShifter DOES Modify System Files!

ShapeShifter DOES Modify System Files! Development 41 posts Sep 23, 2005 — Oct 6, 2005
Quote:
Originally Posted by Kevin
It's a speed hit I can notice considerably. The same with Kaleidoscope back in the day.


Are you sure that's what you're noticing? When was the last version of SS you used?
btw, Shapeshifter's open doodad is constant time. No O business at all.
Quote:
Originally Posted by Rosyna
btw, Shapeshifter's open doodad is constant time. No O business at all.


If you're reading a plist to find a match for a file you no longer have a constant algorithm time. You're then running into a search algorithm time which is an O function. The search time becomes dependent on the file you're looking at, which at worst case is O, where O is the number of files that Shapeshifter is theming. Therefore, the more ShapeShifter themes, the worse your maximum possible speed hit is.

What Blacktiger was talking about was something like my example above, where the code has a constant run time. In computer science something with a constant run time is ignored when looking at algorithm effectiveness. Big O notation simply drops anything constant.
in my use, shapeshifter/mightymouse/fruitmenu...slow down my mac...a bit.
if i run a test user account without ape, things are a little faster.

still...not worth giving them up! i LIKE a custom theme, a better cursor. and fruitmenu's custom contextual menus are indispensable.

whatever works 4 u!
goMac, do *not* assume to know how SS is doing it. You know what they say about people that assume things.
Quote:
Originally Posted by Rosyna
goMac, do *not* assume to know how SS is doing it. You know what they say about people that assume things.


If you're looking in a list of files it's going to be an O algorithm. That's the way application theming is done at any level. The results that TheSpaz is getting do nothing but verify this. This would also probably be why ShapeShifter keeps a plist of files for the current theme, or why when you do an fs_usage you can see ShapeShifter redirecting the file opens, or why ShapeShifter is still writing out all the files from a theme individually, or why ShapeShifter has to reapply on a system update, or why ShapeShifter has to reapply when iTunes is updated... Either that or ShapeShifter keeps the plist for no clear reason, and all paths are hardcoded (which in itself could still be considered an O search algorithm), but I doubt that. I don't think ShapeShifter's fsref overrides are just for fun.

If you're catching a resource fetch mid call and pulling from another open resource file, yes, that's going to be a constant. That still doesn't change that for any application skin, even if the system is just running opens that have nothing to do with themes, you're going to take an O level hit. An O level hit doesn't refer to the average speed hit, it refers to the maximum. At maximum, you could take a speed hit that is dependent on how many files you are theming.
The bickering between the unsanity crowd and gomac continues to make me giggle, but I will digress.

Does anyone have any substantial proof as to what gomac or Rosyna are saying? Statistics on resource usage while shape shifter/other unsanity products would be nice.
Quote:
Originally Posted by Tick
Does anyone have any substantial proof as to what gomac or Rosyna are saying? Statistics on resource usage while shape shifter/other unsanity products would be nice.


You could maybe do something with fs_usage, I'm not sure. Like I said before, the speed hit isn't even going to be noticeable by the end user, so I'm not sure why Rosyna is arguing this.

If you take a recursive function it's upper bound of running time is going to be dependent on how many possible possibilities there are. The application skinning functionality for ShapeShifter is going to be O(number of files being skinned), no matter how it's done. The longest possible running time is going to be the number of files being skinned. This is because at worst, ShapeShifter is going to have to look at the file being opened and compare it against every single file that it is interested in theming.

If Unsanity has found a way to make a recursive function where the number of iterations is dependent on some sort of scaling list, and make that run time constant, I have a friend who would be very interested in it. I also think they should talk to the Nobel Prize people.

Debating about Big O notation on a GUI forum seems kind of pointless to me. If you'd like to continue looking at Big O notation Rosyna see Google or email me at colin (at) whitemagiclabs.com.
Quote:
Originally Posted by goMac
You could maybe do something with fs_usage, I'm not sure.




Without making a parser for that it would be a horribly long process to find out specifics. I haven't loaded shapeshifter on my g4 ibook yet, but when I was on the g3 ibook it wasn't that much of a difference.
on my current machine there is no noticable lag whatsoever. on my previous one (G4800 / 640) the lag when launching an app was noticable.
This thread isn't going anywhere... it's pretty much dead. I was proved incorrect... now isn't there a different thread for ShapeShifter benchmarks?
mp.ls