3.0 = Rip Roaring Resource Hog :-(

*To*: mathgroup at smc.vnet.net*Subject*: [mg5094] 3.0 = Rip Roaring Resource Hog :-(*From*: Mark Evans <evans at gte.net>*Date*: Wed, 30 Oct 1996 22:03:42 -0500*Organization*: None*Sender*: owner-wri-mathgroup at wolfram.com

3.0 = Rip Roaring Resource Hog :-( I have used Mathematica for years and found it exceptionally useful in a wide variety of situations. It has succeeded where other programs and compilers have not only failed, but failed miserably. It has allowed me to do jobs I could not dream of accomplishing without its unique capabilities. It is generally a pleasant and refreshing experience to work with Mathematica. Yet there are some situations when Mathematica just falls down on its face. I have encountered several of these in quick succession recently. All of them relate to the manipulation of real-world data as opposed to small examples or algebraic expressions. It is starting to sink into my brain that Mathematica is extremely wasteful of system resources. For the first time, I am thinking about moving my work over to MATLAB. I need a program that knows what machine numbers are! I've recently posted some complaints about MMA 3.0's file system deficiencies. I am informed that WRI is in the process of addressing these for version 3.1. Hooray for that. But consider the following demonstration of what a resource nightmare MMA 3.0 can be. I have a single Windows WAV sound file that is exactly 463,094 bytes long. This figure is reported by the Windows 95 Properties dialog. That's about half a megabyte. In principle, any program that reads in this data should not need more than about 0.5 to 1.0 megs to store the data. MATHEMATICA 3.0 TAKES 9 MEGABYTES TO STORE 0.5 MEGABYTES OF DATA. This is an inefficiency ratio of 18:1. I AM HAVING SERIOUS DOUBTS ABOUT THE ABILITY OF THIS PROGRAM TO DEAL WITH REAL LABORATORY DATA SETS. Here are the byte counts I got from Mathematica 3.0 Final. <<Miscellaneous`Audio` In[17]:= filename = "G:\\Telluric\\Data\\Original Data 8\\b1.wav" Out[17]= G:\Telluric\Data\Original Data 8\b1.wav In[18]:= FileByteCount[filename] (* size of file in bytes *) Out[18]= 463094 In[19]:= sound = ReadSoundfile[filename]; (* read it (2 min.) *) In[20]:= ByteCount[sound] (* how big is the data in bytes *) Out[20]= 9261024 In[21]:= N[ByteCount[sound] / 1024] (* how big in kilobytes *) Out[21]= 9043.97 In[22]:= nsound = N[sound]; (* turn integers into machine #'s *) In[23]:= N[ByteCount[nsound] / 1024] (* new size in KB *) Out[23]= 9043.97 I tried Share[] and it did not help. So whether the array is composed of exact integers or machine-precision numbers, it takes 9 megabytes of storage in Mathematica 3.0. Nine megabytes of storage for an uncompressed file that takes 0.5 megs on disk is out of this world. This is object-orientation gone berserk. Does MMA 3.0 treat every component of the array as an "object"? I recently complained to WRI about the price increases following release of 3.0. You are looking at $2000 for a copy of Mathematica plus one application pack. Two thousand dollars for a setup with this kind of inefficiency is too much money, by far. I want to see Mathematica succeed, but I also want to see myself succeed. If the tool can't do the job, it should not be advertised as an all-purpose slicer/dicer and priced like one. From the outputs shown above, it seems that any successful use of the application packs on real data of any significant size will require access to several hundred megs of RAM. Most of us don't have that much. Please, WRI, please focus all your efforts for 3.1 onto these efficiency problems. Mark Evans evans at gte.net