Write rate scales with file size in Rhino 6

Hi,

I have noticed some odd behaviour with Rhino 6. I am working on some large projects and the save time is extremely long (20 minutes for some of the files).

The project I am working on has a series of setups starting small and scaling up- I’ve been monitoring the disk usage when saving and noticed that the write rate of saves scales down proportionally to the file size. The smaller files (roughly 300 mb) save very quickly with a decent write rate of ~40 Mb/sec. However this drops as the files get bigger, exacerbating the time increase from the larger file. 1gb files appear to be limited to roughly 15 Mb/ Sec, by the time the project reaches the 2gb file size this drops to just 3Mb/ sec resulting in a roughly 11 minute wait every time I save the project.

There appears to be a bottleneck in how Rhino handles saves- when saving the cpu is pegged at 20% usage (the machine I am using is a 7th Gen i7 with 8 threads so looks like it’s limited by single core performance?).

Edit: A side note- the other thing that occurs to me, the files in question are comprised of many copies of the same set of objects, evidently Rhino treats these as independent. It’s a shame the software can’t recognise the identical copies of the same objects when saving as this would reduce the file size substantially…

Hello - thanks, I am chasing another slow saving report that seems it might correspond with what you are reporting, I’ll see what I can find out.

-Pascal

1 Like

Hi,

Thanks for the reply- if you need any more info please let me know. I use Rhino on two machines and both exhibit the same behaviour with these large saves.

Thanks,

Robert

Hello - there seems to be more to it that just file size - I made a series of files where I basically doubled the file size for each save - the largest so far 4GB, saves in four and half minutes, about double what the 2 GB file takes. This is with no added materials, snapshots, render meshes etc.

To make identical copies be the same underlying object, use Blocks.
https://wiki.mcneel.com/rhino/usingblocks

-Pascal

Hi Pascal,

thanks for the links to blocks- that sounds ideal for this project. I have found imported items are usually treated as block instances however as this prevents changes being made to items (e.g. changing material) I have always removed the block definition after import, it’s nice to know what the feature is for!

With respect to the file size here are a few details of what I am doing:

  • I am using Rhino 6 and V Ray to render different configurations of a system.
  • Materials are applied from V Ray to layers rather than directly to the objects
  • I am saving the files with render meshes. I did experiment with the ‘save small’ option which greatly reduces both file size and save time, however this then results in a file that takes 20+ minutes to open instead so doesn’t really help.
  • The parts in question are a series of injection mouldings which include quite a lot of fine detail (which my customer is insistent has to be included) such as physically formed logos and such so the geometry is very complex. I think this is the root cause of the problem…

I will try working with the block command for the next set and see how I get on.

Hi Pascal,

just a quick follow up- using blocks has helped allot, files that were reaching 3+ gb are now under 1gb. It does appear that the write rate still slows down on the larger files though. Still by keeping the file size in check it helps avoid the save times getting quite so ludicrous.