I installed the Visio 2007 trial to see if it helps. It also seems not to be
multithreaded, despite the availability of multiprocessor desktop computers
since Windows NT. Like V2003, file saves take considerable time to complete.
A save on 2007 first took about a minute due to more layers and information
added since the earlier posts. The new options to remove hidden information
helped somewhat and reduced this back to about 35 seconds. Remember, this is
a working document that, as in any growing company, regularly has more
information added than removed. The file is currently 16.3MB, and it does not
have CAD elements - I converted them to Visio elements on receipt since I
needed to modify them.
Since I didn't give details before, I am using a Dell Precision 690
Workstation with dual Xeons (Windows sees eight processors running at 3.20GHz
each). For the duration of the save process, one process ("CPU" in the Task
Manager) is pegged, though which process is pegged changes during the course
of the save. It has an NVIDIA Quadro FX 550 graphics card with 128MB RAM,
which is (disappointingly) one of the best Dell offers on the business-class
systems. It's driving one display at 1920x1200 and one at 1280x1024. And it's
got 2GB RAM and a 160GB 10K SATA WD Raptor.
Considering multiprocessor systems are becoming the norm rather than the
exception, can we foresee Visio becoming multiprocessor (or hyperthreading)
aware in the near future? It is disappointing that an lower-end processor
(with a single faster core) with similar other specs could conceivably
outperform this workstation-class system.
Thoughts?
:
The CAD drawing may explain some of the sluggishness. Visio uses a custom
rendering component to display and manage the CAD drawing. The component has
a few known performance bottlenecks, but the CAD file may also be complex in
its own right.
--
Mark Nelson
Office Graphics - Visio
Microsoft Corporation
...
To answer your questions,
Type of drawing: Floorplan with IT resources (computers, printers, switches,
etc.) laid out, with configuration details associated. It was imported from
AutoCAD.
How many pages are in the file: It's a single page. The drawing page is
10.35x4.31 at a scale of 1"=2000", but we often print it rotated on a 44"
plotter sheet.
Some physical memory remaining: During the save process, Visio didn't exceed
233MB. Commit Charge peak was 862M out of a limit of 4032M, and Physical
Memory total is 2095M with available never dropping below 1015M.
Also, my comment on application inefficiency was not intended to be
Microsoft-specific. Most modern applications tend to be bloatware, whatever
the cause. That doesn't make it right, but everybody is doing it.
I have been trying to remove and simplify redundant items, as the original
creator seemed to like to break long segments into pieces. A single long line
would obviously be more efficient than several short segments. But without an
automation tool, it's a time-consuming process.
:
Hi Michael,
Good questions here. You didn't mention what type of drawing you have. That
can make a big difference. Some drawing types have add-on applications that
manage information above and beyond what base Visio does. It may take extra
time for those add-ons to persist information back in the file. 12.5MB is
definitely a large file, but 28 seconds seems excessive. Also I'm curious
how many pages are in the file.
As you have noted, Visio is not a multi-threaded application and will not
make use of additional processors. The biggest performance bottleneck for
Visio is typically memory, not CPU horsepower. Very large documents need
very large amounts of memory. 2GB should definitely be sufficient though.
You should check the Visio process in Windows Task Manager to be sure that
you have some physical memory remaining while Visio is saving.
Trying to make Visio run faster is one side of the coin. The other side is
trying to reduce the size of the file. Perhaps things can be simplified or
unused objects deleted from the file. We added a new feature to Visio 2007
(
http://www.microsoft.com/office/preview/default.mspx) called Remove Hidden
Information to help users clean up their files.
Finally, it is not quite accurate to claim that the file format is
efficient, but the current software is inefficient. Visio's binary file
format was designed in a different PC era when the trade-offs between CPU,
disk access and memory were much different. It turns out that there is
nothing particularly compact about the binary data on disk. In fact, the
data is more or less a snapshot of memory. While there are always
opportunities to wring better performance out of the Visio application, the
major problem seems to be not keeping up with modern PC configurations.
--
Mark Nelson
Office Graphics - Visio
Microsoft Corporation
:
I have a dual-processor dual-core hyper-threaded Xeon system (2GB RAM, Win
XP Pro). When I save my 12.5MB Visio (2003 Pro) diagram, it pegs one thread
for 28 seconds, and leaves the other seven threads idle.
My first question was why a 12.5MB file could take 28 seconds to save
(SATA-150 hard drive). I figure the file format was probably created by the
Visio Corporation and is quite efficient, but that the current program was
created by Microsoft, known for its application inefficiency / bloat. (Uh,
Vista needs 512MB RAM minimum, 1GB suggested, and it wants a 256MB video card
just to use all the OS features? What happened to 64MB being a monster
computer? <"Nobody will ever need more than 640 kB RAM.">)
My second question is why upgrading to a workstation-class system does not
improve performance any. Apparently the program is designed for a 1995-era
computer and does not make use of modern processor features.
Is there a way to improve Visio performance? The computer upgrade was
largely to support Visio's demands. (I had hoped to beta Vista on it, but
Dell won't provide drivers for the SATA or PCIe.)