Graph axes assignment: performance difference between ATTR_ACTIVE_XAXIS and ATTR_PLOT_XAXIS

Hi,
I am using a xy graph with both x axes and both y axes. There are two possibilities when adding a new plot:
1) PlotXY and SetPlotAttribute ( , , , ATTR_PLOT_XAXIS, );
2) SetCtrlAttribute ( , , ATTR_ACTIVE_XAXIS, ) and PlotXY
I tend to prefer the second method because I would assume it to be slightly faster, but what do the experts say?
Thanks!  
Solved!
Go to Solution.

Hi Wolfgang,
thank you for your interesting question.
First of all I want to say, that generally spoken, using the command "SetCtrlAttribute"is the best way to handle with your elements. I would suggest using this command when ever it is possible.
Now, to your question regarding the performance difference between "SetCtrlAttribute" and "SetPlotAttribute".
I think the performance difference occures, because in the background of the "SetPlotAttribute" command, another function called "ProcessDrawEvents" is executed. This event refreshes your plot again and again in the function whereas in the "SetCtrlAttribute" the refreshing is done once after the function has been finished. This might be a possible reason.
For example you have a progress bar which shows you the progress of installing a driver:
"SetPlotAttribute" would show you the progress bar moving step by step until installing the driver is done.
"SetCtrlAttribute" would just show you an empty bar at the start and a full progress bar when the installing process is done.
I think it is like that but I can't tell you 100%, therefore I would need to ask our developers.
If you want, i can forward the question to them, this might need some times. Also, then I would need to know which version of CVI you are using.
Please let me now if you want me to forward your question.
Have a nice day,
Abduelkerim
Sales
NI Germany

Similar Messages

  • Performance difference between page and scroll

    Hi experts:
    What is the technical difference between paging and scrolling, especially as pertains to database access and performance?  The scenario would be a table result in a view where 200 results exist for a query.  A scrollable table would show all results, while the paging table would show 10/20 per page.  Is the database selection the same for both approaches?  Or is the paging approach going to make more trips?  If there are trips - how does the UI know how many pages should be presented?  Is one or the other a better approach for data which is not existing in CRM system?
    regards,
    bill.

    If you look at the servlet translated from a JSP, you'll see these lines:
    Object page = this;
    pageContext = _jspxFactory.getPageContext(this, request, response,
                null, true, 8192, true);
    _jspx_page_context = pageContext;
    application = pageContext.getServletContext();So page is simply an alias for this.
    And PageContext is analogous to ServletContext but please notice, it's not the same or a replacement; application is the implicit reference to ServletContext and not pageContext. There is no equivalent of pageContext in servlets.
    Please note that the page scope doesn't refer to the page object but to the pageContext. Therefore, what Manivel said above
    page is used as a scope with in one jspisn't correct.
    Edited by: nogoodatcoding on Sep 24, 2007 1:30 PM

  • Is there any performance difference between unique and no unique index

    Hi,
    We are working with both databases Oracle and MS-SQL and we have an open channel to MS-SQL server core team.
    We got the word from them that there is a difference between unique and no unique index from the optimizer perspective, i.e. the optimizer knowing that the index is unique may choose a more suitable plan for running a specific query, we're still trying to find a specific example.
    Anyway, since we do not have an open channel to Oracle core, I thought maybe one of you guys knows something about Oracle optimizer behavior on this issue.
    I am interested verified answers from certified sources and not suggestions or thoughts.
    Thanks in advanced,
    Tal ([email protected]).

    Maybe, you will like to check this link for a similar question answered by Tom Kyte
    http://asktom.oracle.com/pls/ask/f?p=4950:8:385900000490041683::NO::F4950_P8_DISPLAYID,F4950_P8_CRITERIA:7641143144618,

  • Performance difference between 6490M and 6750M?

    I'm looking at a new 15" MBP. What performance difference will I likely see between the Radeon 6490M and 6750M? It's a huge jump in graphics memory, but how much will it help me? I'm not a gamer at all, but I do a fair amount of work with photos and video.
    Thanks!

    Since you don't play games, you'll notice a difference in graphic and video applications that are GPU accelerated, like Motion, and Photoshop CS4 & 5.

  • Performance Difference between DBCO and PI techniques

    Hi all,
    I want to analyse the performance of inserting records in CORP tables using DBCO connection.
    Can any body please explain which technique is better either using DBCO connection or using PI interface technique.
    Thnaks
    Nitesh

    Since you don't play games, you'll notice a difference in graphic and video applications that are GPU accelerated, like Motion, and Photoshop CS4 & 5.

  • Performance difference between sqlj and jdbc

    hi:
    i am working with a project and i have to generate text files
    from database . first i am working with pl/sql, but i am not so
    satisfied with the performance. so i turn to java stored procedure. I have two choice sqlj and jdbc when accessing
    database? which performs better? sqlj or jdbc? or there's only
    little difference.
    And would u like to give me some other choice to run faster.
    maybe pro*c/c++ is a choice . but if it can't run much faster ,
    it's not a better choice.
    regards

    Since you don't play games, you'll notice a difference in graphic and video applications that are GPU accelerated, like Motion, and Photoshop CS4 & 5.

  • Performance Difference Between 2gb and 4gb on a MacBook Pro

    Hi Guys,
    About to make the big purchase. I am wondering what is the proformance difference between 2gb of ram and 4gb of ram on the new MacBook Pro?
    Thanks
    ll

    I upgraded my new late 208 mbp and have been having ram problems ever since. My computer keeps locking up usually during video play and makes screeching noises and has weird 1 inch thick horizontal lines that go across my screen when it happens. I have to do a hard shutdown. I called macsales.com where i got the OWC memory and they said there is an issue with the video drivers and the third party memory. I have already had a replacement computer from Apple and it is still happening on a different computer. i did a fresh install of the OS but still having it. So be aware....it's already happened on two computers for me!

  • Performance difference between LIKE and "="

    May I know what will be the performance difference for
    select * from a where b = 'C'
    v.s.
    select * from a where b like 'C'
    In general, we don't notice any performance difference in using "LIKE" but under some situation we do. Any idea why?

    Equality is a relatively easy thing for the cost-based optimizer (CBO) to handle, so it is far more likely that it will generate the "right" query plan.
    It is a lot more difficult for the CBO to estimate how many rows a LIKE query will return, particularly since the vast majority of LIKE clauses have wild-cards. I would not be suprised if the CBO were occasionally generating incorrect plans if you are using LIKE where you could be using =.
    Justin

  • Display Performance Difference between CS3 and CS4

    I have a computer running CS3 and a computer running CS4. When I place an image in InDesign CS3, it looks way better than when I place it in CS4. The display performance for both computers are set exactly the same. Raster and Vector images are set to proxy, transparency is set to medium quality, Anti Aliasing is turned on.
    The CS4 computer:
    Processor Name: Dual-Core Intel Xeon
    Processor Speed: 2.66 GHz
    Number Of Processors: 2
    Memory 4GB
    System Version: Mac OS X 10.5.8 (9L31a)
    CS3 computer:
    Processor Name: PowerPC G5
    Processor Speed: 2 GHz
    Number Of Processors: 2
    Memory 4GB
    System Version: Mac OS X 10.5.8 (9L31a)
    What am I missing? It is virtually every image.

    "You can adjust the quality of the the display itself without altering the name of the setting."
    Tried that. The end result is viewing images at the higher quality that slows down the machine.
    "Also, the size and resolution of images plays a role in how large the previews are, and their quality."
    The difference is very noticeable when the exact same image is placed at the exact same sizes in InDesign CS3 and CS4. Everything in the workflow remained the same, except the changing of InDesign files.

  • Dual 24" cinema displays - performance difference between 6490M and 6750M?

    Hi,
    I am running 2 x 24" Apple Cinema displays and need to choose between the 2.2ghz i7-2635QM and 2.0ghz i7-2720QM MacBook Pro 15" offerings. They come with the 256mg HD 6490M graphics and the 1gb 6750M graphics.
    I do a bit of Photoshop CS3 (once a month), rarely any video rendering.
    But as I run dual monitors (via a Matrox DualHead2Go DP edition) I am keen to find out if the extra £300 for the higher spec will actually assist my usage.
    Its currently running on a MacBook Pro 6,2 2.4ghz early 2010 model. It runs fine on this.
    Thanks
    Eric

    Can't help with your question, but wondering what video adapter you are using to connect 2x Cine Display to your MacBook Pro as I'd like to do the same.
    KD

  • Performance difference between InfoCube and ODS

    Hello guys,
    I have to implement a data contrainer with round about 40 millions entries and more than 50 characteristics/items.
    The question is fairly easy - what kind of data contrainer (ÍnfoCube or ODS-Object) is more powerful on reporting aspects, adopted i set up secondary indexes for specific characteristics on the ODS-Objekt or use line item dimensions for same characteristics at an InfoCube.
    Thx 4 advise
    Markus

    Hi Markus,
    from the point of view of reporting Cubes offer powerfull tools for improving performances.
    One of the most important is the logical partitioning: if you have different years in your data you can split cubes for year and then aggregate all with a MultiProvider.
    The system during query run will split the single query into several queries reading in parallel the single cubes under the Multiprovider.
    Check in Business Intelligence area of SDN, you will find a document for performance improvement.
    Ciao.
    Riccardo.

  • Performance difference between tables and materialized views

    hi ,
    I created a materialized view on a query that involves partition table in it.
    When i used the same query and created a table out of it <create table xyz as select * from (the query)> ,the table got created quickly.
    So does that mean performance wise creating table is faster than creating/refreshing the materialized view ?or is that due to the refresh method i use ?Currently i use a complete refresh

    I created a materialized view on a query that involves partition table in it.
    When i used the same query and created a table out of it <create table xyz as select * from (the query)> ,the table got created quickly.
    So does that mean performance wise creating table is faster than creating/refreshing the materialized view ?or is that due to the refresh method i use ?Currently i use a complete refresh Well, for starters, if you created the materialized view first and then the standard table, the data for the second one has already been fetched recently and so will reduce your I/O due to caching, and will therefore be quicker. There are also other factors such as the materialized view creating other internal bits that are required to allow for refreshes to be done quickly, such as the primary key etc which you haven't created on your second creation.
    What you have shown is that two completely different statements running at different times, appear to operate with different speed. It is not a comparison of whether the materialized view is slower or quicker than the create table statement.

  • Performance difference between 1gb and 2gb RAM for Leopard

    Hi ..
    I'm thinking of upgrading to a 2gb Ram.
    Would like to know if other users saw a major increase in speed & performance in Leopard.
    Thanks.

    No, I didn't see any appreciable speed increase in Leopard, but the increased RAM should help.

  • How to join three tables and practical difference between 10g and 11g

    I want to know with example how to outer join three different tables in Oracle.
    Also if you have any website or reference for understand syntax or performance difference between 10g and 11g then please paste a link in.thanks!!

    Hi,
    897293 wrote:
    I want to know with example how to outer join three different tables in Oracle.The 3rd table comes into the result set the same way the 2nd one did:
    FROM           table_1  t1
    LEFT OUTER JOIN      table_2  t2  ON   ...
    LEFT OUTER JOIN      table_3  t3  ON   ...The join condition(s) for t3 can reference t1, or t2, or both.
    Also if you have any website or reference for understand syntax or performance difference between 10g and 11g then please paste a link in.thanks!!The main manuals all have "What's New" sections near the beginning. For example:
    http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/wnsql.htm#sthref5
    Hoek,
    We've missed you. Welcome back!

  • Huge performance differences between a map listener for a key and filter

    Hi all,
    I wanted to test different kind of map listener available in Coherence 3.3.1 as I would like to use it as an event bus. The result was that I found huge performance differences between them. In my use case, I have data which are time stamped so the full key of the data is the key which identifies its type and the time stamp. Unfortunately, when I had my map listener to the cache, I only know the type id but not the time stamp, thus I cannot add a listener for a key but for a filter which will test the value of the type id. When I launch my test, I got terrible performance results then I tried a listener for a key which gave me much better results but in my case I cannot use it.
    Here are my results with a Dual Core of 2.13 GHz
    1) Map Listener for a Filter
    a) No Index
    Create (data always added, the key is composed by the type id and the time stamp)
    Cache.put
    Test 1: Total 42094 millis, Avg 1052, Total Tries 40, Cache Size 80000
    Cache.putAll
    Test 2: Total 43860 millis, Avg 1096, Total Tries 40, Cache Size 80000
    Update (data added then updated, the key is only composed by the type id)
    Cache.put
    Test 3: Total 56390 millis, Avg 1409, Total Tries 40, Cache Size 2000
    Cache.putAll
    Test 4: Total 51734 millis, Avg 1293, Total Tries 40, Cache Size 2000
    b) With Index
    Cache.put
    Test 5: Total 39594 millis, Avg 989, Total Tries 40, Cache Size 80000
    Cache.putAll
    Test 6: Total 43313 millis, Avg 1082, Total Tries 40, Cache Size 80000
    Update
    Cache.put
    Test 7: Total 55390 millis, Avg 1384, Total Tries 40, Cache Size 2000
    Cache.putAll
    Test 8: Total 51328 millis, Avg 1283, Total Tries 40, Cache Size 2000
    2) Map Listener for a Key
    Update
    Cache.put
    Test 9: Total 3937 millis, Avg 98, Total Tries 40, Cache Size 2000
    Cache.putAll
    Test 10: Total 1078 millis, Avg 26, Total Tries 40, Cache Size 2000
    Please help me to find what is wrong with my code because for now it is unusable.
    Best Regards,
    Nicolas
    Here is my code
    import java.io.DataInput;
    import java.io.DataOutput;
    import java.io.IOException;
    import java.util.HashMap;
    import java.util.Map;
    import com.tangosol.io.ExternalizableLite;
    import com.tangosol.net.CacheFactory;
    import com.tangosol.net.NamedCache;
    import com.tangosol.util.Filter;
    import com.tangosol.util.MapEvent;
    import com.tangosol.util.MapListener;
    import com.tangosol.util.extractor.ReflectionExtractor;
    import com.tangosol.util.filter.EqualsFilter;
    import com.tangosol.util.filter.MapEventFilter;
    public class TestFilter {
          * To run a specific test, just launch the program with one parameter which
          * is the test index
         public static void main(String[] args) {
              if (args.length != 1) {
                   System.out.println("Usage : java TestFilter 1-10|all");
                   System.exit(1);
              final String arg = args[0];
              if (arg.endsWith("all")) {
                   for (int i = 1; i <= 10; i++) {
                        test(i);
              } else {
                   final int testIndex = Integer.parseInt(args[0]);
                   if (testIndex < 1 || testIndex > 10) {
                        System.out.println("Usage : java TestFilter 1-10|all");
                        System.exit(1);               
                   test(testIndex);               
         @SuppressWarnings("unchecked")
         private static void test(int testIndex) {
              final NamedCache cache = CacheFactory.getCache("test-cache");
              final int totalObjects = 2000;
              final int totalTries = 40;
              if (testIndex >= 5 && testIndex <= 8) {
                   // Add index
                   cache.addIndex(new ReflectionExtractor("getKey"), false, null);               
              // Add listeners
              for (int i = 0; i < totalObjects; i++) {
                   final MapListener listener = new SimpleMapListener();
                   if (testIndex < 9) {
                        // Listen to data with a given filter
                        final Filter filter = new EqualsFilter("getKey", i);
                        cache.addMapListener(listener, new MapEventFilter(filter), false);                    
                   } else {
                        // Listen to data with a given key
                        cache.addMapListener(listener, new TestObjectSimple(i), false);                    
              // Load data
              long time = System.currentTimeMillis();
              for (int iTry = 0; iTry < totalTries; iTry++) {
                   final long currentTime = System.currentTimeMillis();
                   final Map<Object, Object> buffer = new HashMap<Object, Object>(totalObjects);
                   for (int i = 0; i < totalObjects; i++) {               
                        final Object obj;
                        if (testIndex == 1 || testIndex == 2 || testIndex == 5 || testIndex == 6) {
                             // Create data with key with time stamp
                             obj = new TestObjectComplete(i, currentTime);
                        } else {
                             // Create data with key without time stamp
                             obj = new TestObjectSimple(i);
                        if ((testIndex & 1) == 1) {
                             // Load data directly into the cache
                             cache.put(obj, obj);                         
                        } else {
                             // Load data into a buffer first
                             buffer.put(obj, obj);                         
                   if (!buffer.isEmpty()) {
                        cache.putAll(buffer);                    
              time = System.currentTimeMillis() - time;
              System.out.println("Test " + testIndex + ": Total " + time + " millis, Avg " + (time / totalTries) + ", Total Tries " + totalTries + ", Cache Size " + cache.size());
              cache.destroy();
         public static class SimpleMapListener implements MapListener {
              public void entryDeleted(MapEvent evt) {}
              public void entryInserted(MapEvent evt) {}
              public void entryUpdated(MapEvent evt) {}
         public static class TestObjectComplete implements ExternalizableLite {
              private static final long serialVersionUID = -400722070328560360L;
              private int key;
              private long time;
              public TestObjectComplete() {}          
              public TestObjectComplete(int key, long time) {
                   this.key = key;
                   this.time = time;
              public int getKey() {
                   return key;
              public void readExternal(DataInput in) throws IOException {
                   this.key = in.readInt();
                   this.time = in.readLong();
              public void writeExternal(DataOutput out) throws IOException {
                   out.writeInt(key);
                   out.writeLong(time);
         public static class TestObjectSimple implements ExternalizableLite {
              private static final long serialVersionUID = 6154040491849669837L;
              private int key;
              public TestObjectSimple() {}          
              public TestObjectSimple(int key) {
                   this.key = key;
              public int getKey() {
                   return key;
              public void readExternal(DataInput in) throws IOException {
                   this.key = in.readInt();
              public void writeExternal(DataOutput out) throws IOException {
                   out.writeInt(key);
              public int hashCode() {
                   return key;
              public boolean equals(Object o) {
                   return o instanceof TestObjectSimple && key == ((TestObjectSimple) o).key;
    }Here is my coherence config file
    <?xml version="1.0"?>
    <!DOCTYPE cache-config SYSTEM "cache-config.dtd">
    <cache-config>
         <caching-scheme-mapping>
              <cache-mapping>
                   <cache-name>test-cache</cache-name>
                   <scheme-name>default-distributed</scheme-name>
              </cache-mapping>
         </caching-scheme-mapping>
         <caching-schemes>          
              <distributed-scheme>
                   <scheme-name>default-distributed</scheme-name>
                   <backing-map-scheme>
                        <class-scheme>
                             <scheme-ref>default-backing-map</scheme-ref>
                        </class-scheme>
                   </backing-map-scheme>
              </distributed-scheme>
              <class-scheme>
                   <scheme-name>default-backing-map</scheme-name>
                   <class-name>com.tangosol.util.SafeHashMap</class-name>
              </class-scheme>
         </caching-schemes>
    </cache-config>Message was edited by:
    user620763

    Hi Robert,
    Indeed, only the Filter.evaluate(Object obj)
    method is invoked, but the object passed to it is a
    MapEvent.<< In fact, I do not need to implement EntryFilter to
    get a MapEvent, I could get the same result (in my
    last message) by writting
    cache.addMapListener(listener, filter,
    true)instead of
    cache.addMapListener(listener, new
    MapEventFilter(filter) filter, true)
    I believe, when the MapEventFilter delegates to your filter it always passes a value object to your filter (old or new), meaning a value will be deserialized.
    If you instead used your own filter, you could avoid deserializing the value which usually is much larger, and go to only the key object. This would of course only be noticeable if you indeed used a much heavier cached value class.
    The hashCode() and equals() does not matter on
    the filter class<< I'm not so sure since I noticed that these methods
    were implemented in the EqualsFilter class, that they
    are called at runtime and that the performance
    results are better when you add them
    That interests me... In what circumstances did you see them invoked? On the storage node before sending an event, or upon registering a filtered listener?
    If the second, then I guess the listeners are stored in a hash-based map of collections keyed by a filter, and indeed that might be relevant as in that case it will cause less passes on the filter for multiple listeners with an equalling filter.
    DataOutput.writeInt(int) writes 4 bytes.
    ExternalizableHelper.writeInt(DataOutput, int) writes
    1-5 bytes (or 1-6?), with numbers with small absolute
    values consuming less bytes.Similar differences exist
    for the long type as well, but your stamp attribute
    probably will be a large number...<< I tried it but in my use case, I got the same
    results. I guess that it must be interesting, if I
    serialiaze/deserialiaze many more objects.
    Also, if Coherence serializes an
    ExternalizableLite object, it writes out its
    class-name (except if it is a Coherence XmlBean). If
    you define your key as an XmlBean, and add your class
    into the classname cache configuration in
    ExternalizableHelper.xml, then instead of the
    classname, only an int will be written. This way you
    can spare a large percentage of bandwidth consumed by
    transferring your key instance as it has only a small
    number of attributes. For the value object, it might
    or might not be so relevant, considering that it will
    probably contain many more attributes. However, in
    case of a lite event, the value is not transferred at
    all.<< I tried it too and in my use case, I noticed that
    we get objects nearly twice lighter than an
    ExternalizableLite object but it's slower to get
    them. But it is very intersting to keep in mind, if
    we would like to reduce the network traffic.
    Yes, these are minor differences at the moment.
    As for the performance of XMLBean, it is a hack, but you might try overriding the readExternal/writeExternal method with your own usual ExternalizableLite implementation stuff. That way you get the advantages of the xmlbean classname cache, and avoid its reflection-based operation, at the cost of having to extend XMLBean.
    Also, sooner or later the TCMP protocol and the distributed cache storages will also support using PortableObject as a transmission format, which enables using your own classname resolution and allow you to omit the classname from your objects. Unfortunately, I don't know when it will be implemented.
    >
    But finally, I guess that I found the best solution
    for my specific use case which is to use a map
    listener for a key which has no time stamp, but since
    the time stamp is never null, I had just to check
    properly the time stamp in the equals method.
    I would still recommend to use a separate key class, use a custom filter which accesses only the key and not the value, and if possible register a lite listener instead of a heavy one. Try it with a much heavier cached value class where the differences are more pronounced.
    Best regards,
    Robert

Maybe you are looking for