Java cannot handle multiple live-plotting of graphs ??

Hi guys,
I am running some real-time simulation that deals with some rather heavy computationally intensive operations and generating some outputs at every time cycle. These data will be output to some data table and plots displayed on the screen
The problem I face:
It seems to me my current model of implementation is not solving the problem properly. Without the GUIs, my outputs are relatively accurate (basically, I am running some heuristic control using Jess) and stable. With all the live plotting and updating of the GUI components, the results starts to deviate from theoretical solutions. My guess is that the problem lies with the limited CPU time/power associated with one single VM ( not sure about this, just a wild guess).
While I understanding the GUIs can consume a lot of CPU power while updating (especially if there are very many GUI components to repaint at every time step) JDK 1.4.x works much better than 1.3.x, as 1.4 has dramatically better Swing performance. I started with JDK 1.3 weeks ago and have recently moved to JDK 1.4 in hope of better performance. But it seems to me that that has not help much either.
I was thinking if I can use multi threading techniques to improve this problem. That is, I get the live plotting operations and GUI components update to be done in a separate thread. Any ideas ??
Many thanks for your time and attention.
Regards
David

Even though the subject is different, it is still [url http://forum.java.sun.com/thread.jsp?thread=471856&forum=31]crossposting!

Similar Messages

  • Mountain lion cannot handle multiple monitors. Why?

    Runnig Mountain Lion 10.8.1 on a MacPro Early 2009.
    Mountain lion has screwed my multiple monitor life up! With Lion I was able to have 5 multiple monitors rotated 90 degrees running without a hitch. I know... I am a visual learner .  I have 3 Nvidia Geoforce GT 120 512 MB graphics cards. All bought from apple. Why can't mountain lion handle multiple monitors in any rotation? Is there going to be a fix soon? like 10.8.2? Does anyone know if apple is working with Nvidia to correct this?  I am back to just 1 90 degree rotated monitor.This hurts.

    10.8.3 DOES NOT WORK for me.
    this did NOT solve my problem... I responded too soon.
    Yes I am able to have 6 monitors in portrait mode with 3 Nvidia Geoforce GT 120 512MB graphics cards but as of yesterday, my whole system shuts down and reboots. This happened 3 times in the span of about an hour.
    I removed all but 2 monitors running on only 1 Nvidia Geoforce GT 120 512MB graphic card and the system crashes stopped.
    So I am back to either waiting again for some resolution from apple or looking into buying newer graphics cards.
    Oh well, it was fun while it lasted... a whole day.
    Again, I can't get no satisfaction...

  • IE running under XP can't handle multiple SWF files, Why?

    I noticed that IE 8 running under Windows XP cannot handle multiple swf files in one page.
    Up to about 10 files is no problem they are loaded and we can play them ( buttons that start a small audio file).
    But more of these files in one page will stop IE.
    Firefox ( 3.6.28) runs them fine.
    And also IE 8 and/or Firefox under Windows 7 handles them perfectly.
    Has anyone any idea what can cause this and how to resolve this?
    Thanks,
    Onno Tomson
    The Netherlands

    Sorry...I still don't get it. What is it about Windows FUS that keeps iTunes from running running the process twice? It can run many other non-Apple windows apps in multiple user sessions (commercial apps, open source apps, audio/video apps, networked apps). I can even run two different virtual machines at the same time under two different user sessions.
    Why can iTunesHelper.exe run twice but iTunes.exe cannot? Why can I run Safari at the same time? Quicktime Player runs fine under multiple user sessions.
    Blaming it on Windows and/or FUS sounds like FUD. Can anyone give a valid technical reason? Semaphores? Mutexes? An admission (and explanation) that the Windows version is purposely crippled?

  • SAP BO Data Services XI 3.2 - Cannot Handle Multithreaded RFC Connection?

    Hi Guys,
    Just want to ask for your inputs if Data Services cannot handle multiple RFC connection request to BW system?
    The scenario is:
    There is one BODI job using RFC connection and trigger the 2nd job at the same time and it happen that the 2nd job failed.
    Current version of SAP BO Data Services XI 3.2 that we are using is 12.2.2.1
    Thanks in advance,
    Randell

    Arpan,
    One way to get to the multiprovider data is to use Open Hub with a DTP that gets the data from the multiprovider and exposes it as an open hub destination to Data Services. With Data Services XI 3.2 we now fully support Open Hub where Data Services will (1) start the process chain to load the data (2) read the data when process chain ended and (3) notify Open Hub when done so that the data can be purged again.
    More info on Open Hub here : http://help.sap.com/saphelp_nw04/helpdata/en/1e/c4463c6796e61ce10000000a114084/content.htm
    But I will also look into the why we show the multiproviders when browsing the metadata, but get an error when trying to extract using the ABAP method (not via Open Hub). You could be right in your assumptions below and we might just need to hide the multiproviders when browsing metadata.
    Thanks,
    Ben.
    Edited by: Ben Hofmans on Jan 5, 2010 6:06 PM - added link to Open Hub documentation which references multiproviders as possible source.

  • Trouble handling multiple calls

    Can anyone explain to me why the iphone, after being in production since 2007, still cannot handle multiple calls properly? I am on one call, I take another call (and select put current on hold) and when I am done with the second call, I am locked into HOLD on the original. This is simply the latest in the most aggravating aspect of this phone. It is a phone FIRST and doesn't do multiple call handling well at all! It hasn't for the years I've been using iphones.
    Am I alone in this frustration?

    I have no problems taking the waiting call off hold.
    Reboot.
    Restore.
    Restore as new.
    Test after each step until it works.
    Something is wrong.
    It could be a carrier problem. What carrier are you using?

  • How to Send Multiple Plot XY Graph from LabVIEW to Microsoft Excel

    The link below describes exactly what I would like to do, however the link to the solution/work around does not work.
    Has anyone got an alternative solution?
    http://digital.ni.com/public.nsf/allkb/CFD30D5E9C01AB5386256CFB0082AF3E

    Please check the link again as it seems to be working fine now.
    How to Send Multiple Plot XY Graphs from LabVIEW to Microsoft Excel:
    http://digital.ni.com/public.nsf/allkb/CFD30D5E9C01AB5386256CFB0082AF3E
    The standard Excel Insert Graph.vi cannot insert multiple XY Graphs to Microsoft Excel, so you will need to use the Report Generation Toolkit for Microsoft Office.  You will find a link to an example program at the bottom of the page.  I have also attached it below.
    Attachments:
    example.zip ‏35 KB

  • Using LabVIEW to Generate an XY Graph of Multiple, Indexed Plots?

    Hello,
    I have written a LabVIEW Program (using 8.2.1) to characterize FETs using GPIB instruments. At it's most basic level, the program sets a voltage across the Gate-Source terminals of the FET, sets a voltage across the Drain-Source terminals of the FET, reads this second voltage, and then reads the Drain-Source current. The Drain-Source voltage is then increased, the current read, and so on. In this manner, the Drain-Source voltage is swept from 0V to some defined maximum (dependent on the FET being tested) and an array of data (I_{DS} vs. V_{DS}) is generated. The Drain-Source is then reset to 0, the Gate-Source voltage is increased, and the entire process is repeated.
    My problem is this: I need to generate a single Graph  (I think it should be XY, but not entirely certain), that plots all of these IV curves (each curve for each Gate-Source voltage) and indicates the Gate-Source voltage for each curve (in an indexed legend of some sort). Does anyone have any suggestions about how I should do this? My program is entirely based on For Loops and Sequence Structures. If you need a screen shot or want me to upload the program, please let me know. Fair warning, though: I am a LabVIEW novice so while the program functions correctly, it is not the prettiest in the world.
    Thanks for any help you can provide.
    Michael
    P.S. I searched the forums and didn't find this question already posted. If, however, it was and I just missed it, could someone direct me to it? Thanks.

    Vincent, Jon, and Andrew:
    I still need some help. I used the 3524.vi Example for the XY Graph: x-array, y-array definition to generate the kind of multiple plot xy graph that I needed. My problem now is I would like to re-index the plots so that they are labeled according to the Gate-Source voltage I am applying. Each curve has its own, distinct Gate-Source voltage and I would like to label each curve with its Gate-Source voltage. Currently, the plots are labeled in the legend: Plot 0, Plot 1, Plot 2, ... Plot n.
    How should I go about doing this (is there even a way to do this)?
    Again, any help would be greatly appreciated.
    Michael
    P.S. I have attached a copy of my program to this message. As I said, it isn't pretty, but it works so far. Hopefully this will help you in forming your suggestions.
    Attachments:
    FET Characterization Program (V2).vi ‏100 KB

  • SAPGUI JAVA 7.10 (OSX 10.5.1): cannot select multiple columns in ALV

    Hi,
    in sapgui java 7.10 (on mac osx 10.5.1) I cannot select multiple columns in ALV reports.
    I can do it only in some transactions (like SE16). But on all our custom reports (REUSE_ALV_GRID_DISPLAY) in does not work.
    Any hint?
    Many thanks,
    Lorenzo

    Hi Lorenzo,
    did you double check if selecting multiple columns works with SAP GUI for Windows in the same report?
    If yes, I suggest to file a bug report so we can do a remote logon to run your custom report.
    If not it might be because of REUSE_ALV_GRID_DISPLAY itself or your parameters calling REUSE_ALV_GRID_DISPLAY.
    Best regards
    Rolf-Martin

  • Turn off a single plot of a multiple plot waveform graph

    I have a multiple plot waveform graph (4 plots). I want to turn off one of the plots, say plot 2. Is this posible from the graphs property node? The property node seems to only give a reference to plot 0. I am using labview 7.
    Cheers,
    Wayne

    I think you can use "active plot" together with "plot.visible"
    property node to control which one you'd like to display. By default,
    the property node refers to plot 0, but you can change to plot 1 or
    other plots by changing active plot property node. You can search
    "Plot" in LabVIEW Help if you'd like to know details.
    Good luck,
    Jian
    On 18 Feb 2004 03:28:49 GMT, [email protected] (Computerman74)
    wrote:
    >>
    >>I have a multiple plot waveform graph (4 plots). I want to turn off
    >>one of the plots, say plot 2. Is this posible from the graphs
    >>property node? The property node seems to only give a reference to
    >>plot 0. I am using labview 7.
    >>Cheers,
    >>Wayne
    >>
    >>
    >>
    >>
    >>
    >>
    >
    >I would love to know if this is possible. I have been trying to figure i
    t out
    >myself.
    >There is a way to turn a single array off and that is what I am doing for now
    >untill this is possible. The plot is still there but reads zero when tunred
    >off. It would be cool to have the abillty to turn off a single plot.
    >I have tryed all the property nodes with no luck. The answer may be in the
    >array size but I can't seem to control that either.
    >For now you can use wire all 4 channels using the comparison select. Use a
    >constant of 0 And wire up a swtich. When the input is false the output is zero
    >in effect making the plot inactive but it still there.

  • How can I update single plot in multi plot xy graph?

    Hi all,
    I'm working on an HMI "front" for a larger acquisition/analysis system, that includes continuous performance monitoring of a turbine. The results of the measurements are stored arrays of contour lines, that represents turbine efficiency and guide vane openings. This analysis is all performed in the background. In the HMI, the performance data is loaded from file when the specific "report" is requested, and is plotted in an XY graph. I would like to indicate the current operation point of the machine by using a plot that is a single point. Thus, that point's position among the contour lines indicates the current performance of the turbine. This point is updated once every second, while the performance data remains the same for considerable amounts of time between recalculations (days to weeks). 
    Is there any way of updating the value of a single plot in a multiple plot XY Graph without having to redraw all the plots?
    I've tried using the "Active Plot" property, which doesn't work. 
    My current solution is to keep all the data as input to the executing while loop and replace a subset of the plot array, but that of course requires the entire rewrite every time the operation point plot is updated.
    Best regards,
    Jarle Ekanger, MSc, CLD
    Flow Design Bureau AS
    Solved!
    Go to Solution.

    You cannot redraw a single plot. If you want to update a single plot, you need to retain all plots in a shift regsiter and replace the data of the desired plot. However, your problem seems much simpler than that. To show a single point on a nearly static plot you have several options.
    You can use a cursor that is controlled programmatically (the style can be a point, don't allow drag).
    You can use annotations.
    You can use the "plot images" feature that allows you to use image commands to draw anything on top of a graph.
    None of these ideas require a redraw of any data.
    I think the cursor idea is probably the easiest and most appropriate. Just use a property node with the following properties:
    active cursor
    cursor position x
    cursor position y
    LabVIEW Champion . Do more with less code and in less time .

  • How to handle multiple clients with DatagramSocket

    I am trying to handle multiple clients with 1 datagramSocket bind to one port (basically I have only one port to use, and I can not use TCP or any other ports). At the server side I have two threads one for receiving packets and buffering them, another for processing the packets in the buffer and sending replies.
    I can have multiple clients sending datagramPackets to me and I will have to process the packets and send them to DIFFERENT clients. Ex. Client 1 sends datagramPacket to Server which sends the processed packet to Client 2. Also Client 2 sends a datagramPacket to Server which again processes the packet and sends it to Client1. May have Client 3 and 4 doing the same thing at the same time... and so on...
    My root class is creating the datagramSocket(somePort) and two threads (receiver and sender). How can I use the socket that I created in these two threads??
    I have done the following and I am getting "java.net.bindexception". When I am sending stuff from Client1 to Client2 everything is fine but when I start sending something from Client2 to Client 1, I get the bindexception... Client 1 is using port 3000, Client 2 is using port 4000.
    I really don't have a lot of experience in socket programming so I am not sure if there is a much simpler way to do this. I appreciate all the tips and help that I can get...
    Thanks...
    class UDP_serv
         static DatagramSocket udpSocket;
         final static int SERVER_PORT     = 2000;
         public static void main(String[] args) throws SocketException
              udpSocket= new DatagramSocket(SERVER_PORT);
              new DataReceiver().start ();
              new DataSender().start ();
         static class DataReceiver extends Thread
              DataReceiver()
                   Thread.currentThread().setName("DataReceiver");
              public void run()
                   while (true)
                        byte pckt[] = new byte [MaxMsgSize];          
                        DatagramPacket dp = new DatagramPacket (pckt, pckt.length);
                        try
                             udpSocket.receive (dp);
                             //PUSH TO RECEIVE BUFFER
                        catch(Exception e)
                             e.printStackTrace();
         static class DataSender extends Thread
              DataSender()
                   Thread.currentThread().setName("DataSender");
              public void run()
                   while (true)
                        processDataMsg();
          static void processDataMsg() 
             DatagramPacket op;
             InetAddress DA = null;
             int DP = 0;
             byte [] outPacket = null;
             // POP FROM RECEIVE BUFFER
             // SOME PROCESSING HERE     
             // Set Destination Address (DA)
             // Set Destination Port (DP)
             // DA and DP are the forwarding IP and Port addresses
             // not the addresses original packet was sent from.
             try
              op = new DatagramPacket (outPacket, outPacket.length,DA, DP);
              udpSocket.send(op);
             catch (IOException e)
              e.printStackTrace();
    }Also for development and testing purposes, I am running the two clients and the server on the same machine (windows xp-32b) so all of the Destination IP Addresses are 127.0.0.1. and as I said Ports that I am using are 2000, 3000, 4000 (Server, Client1, Client2).

    Hmm I have minimized the code and it seems to be working now.
    I think I have an error in the header portion of the data I am sending, where I am storing the source IP/Port and destination IP/Port. I think the server in the middle is messing these values up while sending them to the destination Client. Because the destination client actually receives the stuff and sends the reply back to the server, but the reply packet's headers has 0/0 as the dest IP / Port...
    Server is giving me java.net.BindException: Cannot assign requested address error when it tries to forward the reply it received from the client2 as the address it is trying to send is 0!
    I guess it doesnt just give this error when you try to open two sockets to the same port...
    Paul, Thanks for the direction on how to proceed... took me a while get the minimized code but at least figured out the problem. Well still have to make sure that is THE problem though :)
    As far as the statics goes how can I change those to non static ones? Where do I make an instance of the top level class that creates the threads? and how do I pass the DatagramSocket to the threads/ if I dont need to pass how do I call or use the datagramSocket I created in the top level class? I mean do I still kinda have it like a global variable on the top?? A very simple example would be much appreciated...
    I think these might be really basic questions but I am having a rough time with the hierarchy in java...

  • How to handle multiple exception types in JSF 2?

    I'm trying to handle multiple exception types in JSF2, including a default error page for any unexpected exception types. The problems I'm having are:
    1) ViewExpiredException is handled only when no generic exception handler is specified
    2) "Regular" exceptions like NullPointerException are never handled
    My managed bean:
    @Named
    @SessionScoped
    public class MyController implements Serializable {
    /* A method that does nothing */
    public void doNothing() {
        //do nothing
    /* Generate a null pointer exception on purpose */
    public void generateNpe() throws NullPointerException {
        Object x = null;
        x.toString();
    My test page to generate the exception:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core">
    <h:head>
        <title>Test page</title>
    </h:head>
    <h:body>
        <h:form>
            <h:commandButton id="button1" value="do nothing" action="#{myController.doNothing}" />
            <h:commandButton id="button2" value="generate NPE" action="#{myController.generateNpe}" />
        </h:form>
    </h:body>
    </html>
    My web.xml:
    <!-- Redirect all NPEs to this page; this never works! -->
    <error-page>
        <exception-type>java.lang.NullPointerException</exception-type>
        <location>/error/error003.jsf</location>
    </error-page>
    <!-- Redirect all VEEs to this page; this works fine if the next section is excluded -->
    <error-page>
        <exception-type>javax.faces.application.ViewExpiredException</exception-type>
        <location>/error/error002.jsf</location>
    </error-page>
    <!-- This grabs everything, even with the previous sections defined.  If I exclude this error-page section, VEE works fine but NPE still does not get redirected -->
    <error-page>
        <exception-type>java.lang.Exception</exception-type>
        <location>/error/error001.jsf</location>
    </error-page>My questions are as follows:
    1) How can we handle "regular" java exceptions like NPE?
    2) How can we define a catch-all for unexpected exception types, while still respecting specific exception handlers for VEE, etc?
    Thanks,
    Benjamin

    Is your data model right? If you are adding in one and deleting in another it sounds to me more like a process that an entity, in which case you may revisit your data model and simplify it, add in a session bean with the process method to co-ordinate between the two.
    However, if you want to map multiple different tables within a single entity bean it is possible and just part of the mapping. How you actualyl specify it depends on which implementation you are working with.
    Cheers,
    Peter.

  • How to handle multiple datasources in a web application?

    I have a J2EE Web application with Servlets and Java ServerPages. Beside this I have a in-house developed API for certain services built using Hibernate and Spring with POJO's and some EJB.
    There are 8 databases which will be used by the web application. I have heard that multiple datasources with Spring is hard to design around. Considering that I have no choice not to use Spring or Hibernate as the API's are using it.
    Anyone have a good design spesification for how to handle multiple datasources. The datasource(database) will be chosen by the user in the web application.

    Let me get this straight. You have a web application that uses spring framework and hibernate to access the database. You want the user to be able to select the database that he wants to access using spring and hibernate.
    Hopefully you are using the Spring Framework Hibernate DAO. I know you can have more that one spring application context. You can then trying to load a seperate spring application context for each database. Each application context would have it's own configuration files with the connection parameters for each datasource. You could still use JNDi entries in the web.xml for each datasource.
    Then you would need a service locater so that when a user selected a datasource he would get the application context for that datasource which he would use for the rest of his session.
    I think it is doable. It means a long load time. And you'll need to keep the application contexts as small as possible to conserve resources.

  • How to handle multiple request in the servlet

    how to handle multiple request in the servlet...
    Example:
    java forum...
    i'm login in the java forum at this time 1000 members make login in this....how happended in servlet?
    if we use thread how to implement in servlet ?

    Serlets are already threaded. The application container instantiates the servlet, then uses this instance in a new thread for every use.
    This is the reason that you should use (almost) no instance variables in a Servlet, but rather that (almost) everything should be local to the method.

  • How to handle multiple connection or user with l2cap

    hi friends,
    I need your help please a.s.a.p
    how to handle multiple connection with l2cap protocol in j2me
    sorry,
    I'm a new programmer in j2me
    thanks all...

    Please stick with the original thread http://forum.java.sun.com/thread.jspa?threadID=5200413&tstart=0
    Cross-posting is very rude, and JSch has nothing to do with JSSE, directly. It is an SSH2 API. It does (AFAIK) use some parts of JSSE, but those parts are definately not your problem.
    You already have answers in the other thread.

Maybe you are looking for