Next

 

Preface

 

Why do we need another GOOP framework?  The short answer is simply due to performance.  Most of the existing GOOP examples involve classes with relatively few objects that get created at the application initialization and destroyed at the end.  What if you want to build an application applying OOP principals where there are hundreds or even thousands of objects and the design entails that one object may contain multiple other objects which in turn contain objects themselves?

 

I started to develop such an application and soon ran into the performance limitations of the existing GOOP frameworks.  I started with the original GOOP toolkit that was developed by Endevo and is available from the NI website.  After having some performance issues, I tried to look at the code and ran into the password protected core VI.  I then investigated other GOOP options and found openGOOP on the OpenG website.  Unfortunately, the performance was much worse for creating and destroying objects.  After some investigation it was apparent that the bulk of the performance hit was from the "Open VI Reference" call which creates the data store for the object.  Since this was the basis of the OpenGOOP framework, I was at a dead end until...

 

There was an offhanded comment on the Info-LabVIEW mailing list about how the queues in LabVIEW were improved in LabVIEW 7.  Then I started to poke at the concept of using a queue as the data store for GOOP objects.  Not only is the access fast, but queues have built in locking which means there is no need to create Semaphores or Occurrences.  I used the new "Show Buffers..." tool and focused on creating the dqGOOP VIs with one priority...PERFORMANCE.

 

If you need to make GOOP classes that have fast performance, then the dqGOOP Toolkit is the solution for you.

 

Copyright 2005 DataAct Incorporated.  All rights reserved.