Ok , here is a thing that im thinking about , im not any programmer , but i guess rhino is directly start to write stuff on disk after save command and freezes till save happens , but in these days softwares use some thing called BUFER which kinda saves data into the memory (ram) then writes that data back to the hard drive , i researched about options to make rhino faster while saving and i modified bellow settings
Rhino.Options.FileSettings.WriteLocalTempFileWhenSaving
and
Rhino.Options.Advanced.UseCompressionWhenSaving
which did help to reduce save time but in comparison with others thats nothing !
I tested the software under heavy load of hard drive (all of them at 100%) but rhino didn’t froze or lag or anything .
if rhino was able to save a file into some clusters ( as i remember back into the school we could call a file at certain line in basic) which every cluster refers an object and the object properties and the version of that object ( for the software to know change that object or not) , and also keep data in history as much as possible like cages and mirrors etc … the file saving wouldn’t take that long .
here is the sample that i meant ::
File name = "Some big File"
List of objects =
BigMesh1 , start at line 8 , size (x,y,z) , location (x,y,z) , etc ... , Latest edited ver ( 2 )
BigMesh2 , start at line 20635 , size (x,y,z) , location (x,y,z) , cageEdit data , etc ... , Latest edited ver (65)
BigMesh3 , = BigMesh2 , size (x,y,z) , location (x,y,z) , history data,// Not changed Or eddited just copied BigMesh2 and moved around
And So on ...
ln 8 = Start of BigMesh1
0101011001100010110100111101001 //Massive Data ...
Other useless data that can be changed ...
ln 20635 = Start of BigMesh2
01010110010110000101010101110101 // another massive Data
Also another useless data that can be changed aswell
and inside the rhino we’ve got the id’s of objects that has been changed since we know their versions etc ( also moving and scaling and cage editing etc are not big deal since we save them separately on top of the file )