Inconsistent performance on similar platforms

I have created my first java applet. It is a crossword puzzle that works fairly well. It does not run on some machines around the office. It works great on mine, but only sort of works on others. I have made sure the jdk and sdk are on both. I have updated all the windows stuff. Both machines are using XP, and have identical architecture/hardware. What is going on? Some have speculated that it has to do with the sun/ms fight over java and the jvm. Any suggestions?

As stated, it is an applet. There are no error messages. There are no errors. The program does not crash. On some machines it runs great, on others it behaves as if it were running correctly, but the graphics do not show up. The pictures are fine, but the drawlines do not put anything on the screen. The mouse clicks register (I have audio when the mouse is clicked, as well as status info being displayed).
How do I check the JRE?

Similar Messages

  • LabVIEW Embedded - Performance Testing - Different Platforms

    Hi all,
    I've done some performance testing of LabVIEW on various microcontroller development boards (LabVIEW Embedded for ARM) as well as on a cRIO 9122 Real-time Controller (LabVIEW Real-time) and a Dell Optiplex 790 (LabVIEW desktop). You may find the results interesting. The full report is attached and the final page of the report is reproduced below.
    Test Summary
    µC MIPS
    Single Loop
    Effective MIPS
    Single Loop
    Efficiency
    Dual Loop
    Effective MIPS
    Dual Loop
    Efficiency
    MCB2300
      65
        31.8
    49%
          4.1
      6%
    LM3S8962
      60
        50.0
    83%
          9.5
    16%
    LPC1788
      120
        80.9
    56%
        12.0
      8%
    cRIO 9122
      760
      152.4
    20%
      223.0
    29%
    Optiplex 790
    6114
    5533.7
    91%
    5655.0
    92%
    Analysis
    For microcontrollers, single loop programming can retain almost 100% of the processing power. Such programming would require that all I/O is non-blocking as well as use of interrupts. Multiple loop programming is not recommended, except for simple applications running at loop rates less than 200 Hz, since the vast majority of the processing power is taken by LabVIEW/OS overhead.
    For cRIO, there is much more processing power available, however approximately 70 to 80% of it is lost to LabVIEW/OS overhead. The end result is that what can be achieved is limiting.
    For the Desktop, we get the best of both worlds; extraordinary processing power and high efficiency.
    Speculation on why LabVIEW Embedded for ARM and LabVIEW Real-time performance is so poor puts the blame on excessive context switch. Each context switch typically takes 150 to 200 machine cycles and these appear to be inserted for each loop iteration. This means that tight loops (fast with not much computation) consume enormous amounts of processing power. If this is the case, an option to force a context switch every Nth loop iteration would be useful.
    Conclusion
    LabVIEW Embedded
    for ARM
    LabVIEW Real-time for cRIO/sbRIO
    LabVIEW Desktop for Windows
    Development Environment Cost
    High
    Reasonable
    Reasonable
    Execution Platform Cost
    Very low
    Very High / High
    Low
    Processing Power
    Low (current Tier 1)
    Medium
    Enormous
    LabVIEW/OS efficiency
    Low
    Low
    High
    OEM friendly
    Yes+
    No
    Yes
    LabVIEW Desktop has many attractive features. This explain why LabVIEW Desktop is so successful and is the vast majority of National Instruments’ software sales (and consequently results in the vast majority of hardware sales). It is National Instruments’ flagship product and is the precursor to the other LabVIEW offerings. The execution platform is powerful, available in various form factors from various sources and is competitively priced.
    LabVIEW Real-time on a cRIO/sb-RIO is a lot less attractive. To make this platform attractive the execution platform cost needs to be vastly decreased while increasing the raw processing power. It would also be beneficial to examine why the LabVIEW/OS overhead is so high. A single plug-in board no larger than 75 x 50 mm (3” x 2”) with a single unit price under $180 would certainly make the sb-RIO a viable execution platform. The peripheral connectors would not be part of the board and would be accessible via a connector. A developer mother board could house the various connectors, but these are not needed when incorporated into the final product. The recently released Xilinx Zynq would be a great chip to use ($15 in volume, 2 x ARM Cortex A9 at 800 MHz (4,000 MIPS), FPGA fabric and lots more).
    LabVIEW Embedded for ARM is very OEM friendly with development boards that are open source with circuit diagrams available. To make this platform attractive, new more capable Tier 1 boards will need to be introduced, mainly to counter the large LabVIEW/OS overhead. As before, these target boards would come from microcontroller manufacturers, thereby making them inexpensive and open source. It would also be beneficial to examine why the LabVIEW/OS overhead is so high. What is required now is another Tier 1 boards (eg. DK-LM3S9D96 (ARM Cortex M3 80 MHz/96 MIPS)). Further Tier 1 boards should be targeted every two years (eg. BeagleBoard-xM (ARM Cortex A8 1000 MHz/2000 MIPS board)) to keep LabVIEW Embedded for ARM relevant.
    Attachments:
    LabVIEW Embedded - Performance Testing - Different Platforms.pdf ‏307 KB

    I've got to say though, it would really be good if NI could further develop the ARM embedded toolkit.
    In the industry I'm in, and probably many others, control algorithm development and testing oocurs in labview. If you have a good LV developer or team, you'll end up with fairly solid, stable and tested code. But what happens now, once the concept is validated, is that all this is thrown away and the C programmers create the embedded code that will go into the real product.
    The development cycle starts from scratch. 
    It would be amazing if you could strip down that code and deploy it onto ARM and expect it to not be too inefficient. Development costs and time to market go way down.. BUT, but especially in the industry I presently work in, the final product's COST is extremely important. (These being consumer products, chaper micro cheaper product) . 
    These concerns weight HEAVILY. I didn't get a warm fuzzy about the ARM toolkit for my application. I'm sure it's got its niches, but just imagine what could happen if some more work went into it to make it truly appealing to wider market...

  • Inconsistent performance jsp

    Hello,
    We are getting extremely low performance on one jsp page.
    Under stress tests, the performance of other pages scale
    consistently.......... this page does not.
    It contains a javascript tree (that can have up to 1000 nodes).
    We have played with the page buffer settings .... / allocating execute
    queues etc.
    Consistently, the same thing happens .... the first test is positive...
    performance is better, but then we carry out the same test again 10
    minutes later and the performance dramatically drops again to the same
    low ...... 20 sec response times.
    If we put a System.out.println on the page .... measuring the time it
    takes to get from the top of the jsp to the bottom .... it averages at
    around 1000msec .... and blows out maybe once to 10sec.
    Anyone gat any ideas ?
    etienne deleflie

    I have no explanation why two identical pages perform differently - except that
    perhaps they are not identical.
    Is the delay exactly 20 seconds? Look for something (a timeout or flushing maybe)
    that is configured to 20 seconds.
    Garbage collection can cause inconsistent performance. Run your JVM with -verbose:gc.
    What do you mean by 'javascript'? Client side javascript runs in the browser -
    it doesn't really have much to do with WebLogic. WebLogic doesn't support serverside
    javascript. Do you mean Java scriptlets, perhaps?
    If the delay is from the load testing software, why don't you see the delay in
    both pages?
    Have you set pageCheckSeconds and reloadCheckSecs to zero for stress testing?
    (not that this should cause a 20 second delay).
    Take thread dumps as Dimitri suggested and post here.
    Mike
    Etienne Deleflie <[email protected]> wrote:
    hello,
    We have just done an other test, we have replaced the problem page with
    one
    of the other pages that causes no problems. ......... but, strangely
    enough,
    it still blows out to 20 sec delays. (where as the page that we copied
    does
    not........... their content is identical, one blows out to 20 sec ,
    the
    other stays around 1 sec)...... very strange.
    So now we have 2 identical pages (only difference is the URL). Under
    heavy
    testing, one blows out to 20 sec, the other remains at 1 sec.
    Which makes me think of 2 possibilities,
    either
    1. the delay in the offending page is being caused by the way the stress
    testing software is sending its requests to Weblogic. (we are using OpenSTA
    ........... 60 concurrent users) Does anyone have any experience with
    using
    OpenSTA to stress test Weblogic ?
    2. Weblogic caches some settings for a certain page......... and those
    settings still apply to that page (represented by a URL) even when the
    contents of the page are entirely changed.
    etienne
    Dimitri Rakitine wrote:
    Try to make thread dump (or several) during these 20 sec
    to see what this page is doing.
    Etienne Deleflie <[email protected]> wrote:
    Hello,
    We are getting extremely low performance on one jsp page.
    Under stress tests, the performance of other pages scale
    consistently.......... this page does not.
    It contains a javascript tree (that can have up to 1000 nodes).
    We have played with the page buffer settings .... / allocating execute
    queues etc.
    Consistently, the same thing happens .... the first test is positive...
    performance is better, but then we carry out the same test again
    10
    minutes later and the performance dramatically drops again to thesame
    low ...... 20 sec response times.
    If we put a System.out.println on the page .... measuring the time
    it
    takes to get from the top of the jsp to the bottom .... it averagesat
    around 1000msec .... and blows out maybe once to 10sec.
    Anyone gat any ideas ?
    etienne deleflie--
    Dimitri

  • Inconsistent performance

    I have my phone set up to get my aol mail and work email. The first few weeks I had the phone (curve 8330)  it worked fine.  Lately I periodically noticeit is has been "quiet" only to discover messages are not getting to my phone.  If I turn it off and back on the messages come through....
    not sure waht is up for how to fix it... any help you have would be appreciated!!
    thanks

    Before the tuning can be done, you need to analyse where things go wrong. Do an sql trace with ST05 for both companies. Check which statements consume the most time for the slow company and compare the data to the faster one.
    If you cannot solve it then yourself post the information here. I predict a join on MKPF and MSEG (and maybe more tables) to show up.
    Please also check this on what information we need to help you: Please Read before Posting in the Performance and Tuning Forum
    Cheers Michael

  • Server performance requirements by platform

    Are there any whitepapers or internals documents on # of users, configurations and scalability testing?
    null

    KSG wrote:
    Hi,
    I'm running an big oracle process, which may hit the Server CPU performance & Memory Status. Wow!
    .....what does 'hit the Server CPU performance & memory status' mean?
    >
    How may I generate a server performance report every 30 minutes by default?on linux, which is what this forum is about, install the 'sysstat' rpm package.
    when installed, it generates statistics every 10 minutes.
    goto /var/log/sa, you'll see files called 'sa', followed by the day number of the month.
    you can extract the performance data in these files using 'sar -f <safile>', and choose the switch for the statistics you want to see.
    >
    How this can be done with Linux server, HP-UX and AIX Server?once installed the same way on hpux, aix etc. sar works the same.
    >
    >
    Thanks in advance
    KSG
    Edited by: KSG on Nov 19, 2009 6:34 PM

  • Inconsistent Performance in Windows XP

    I have a 2006 iMac, intel processor, setup with a bootcamp partition containing a Windows XP installation. I use the Windows side for occasional gaming, but my machine performs erratically, i.e. sometimes I can play my games smoothly, without error, otherwise the whole machine runs very slow and jerky, and I cannot depend on it. My computer is suffering from a Dr. Jekyl and Mr. Hyde complex and it seems about a coin toss as to which kind of environment it boots into, the quick and snappy Windows, or the sluggish, infernal Windows.
    When malfunctioning, everything will run eventually, but it is painstakingly slow to do anything. For instance, the start menu takes a second or two to appear and all of the drop down menus therein take a second or two to populate and load when hovered over. The performance issue is especially noticeable in a game where it will run for a second or so clean and then freeze for a second or two. It makes game play frustrating and online gaming impossible.
    I have done several things so far in an attempt to remedy this inharmonious condition. A re-installation of bootcamp with Windows did nothing. The problem would eventually reappear. Defragging the drive did nothing. Running disk check always seems to find a bad sector and at first I thought this solved the problem, but the computer would degenerate inevitably. I thought the computer might be overheating, so I am running the fans at a higher than normal speed to keep things cool, but this does not solve the problem either.
    I speculated that my hard drive might be failing, so I took my computer to an Apple store. They ran whatever tests they do to check for such a scenario, but they gave my hard drive a clean bill of health. I try to hypothesize what brings about the herky jerky computer performance and reason that when the RAM is being accessed for buffered information everything runs smoothly, but when the buffer is emptied the hard disk can't fill it fast enough and the machine "stops" until the buffer is full again.
    I just have a hunch this all has to do with the hard drive. I have seen posts about a certain setting that is sometimes changed for the hard drive that results in poor performance, but I recall looking at this once and taking note that is was in the desired mode.
    I am at my wits end and do not know what I should try. I would be grateful for any insights one is willing to share. I also want to go on the record saying I do not think bootcamp is perfect. If I ever save enough money I will buy a machine dedicated to windows for the sole purpose of gaming.
    Thanks,
    Kyle

    I love Windows on my MacBook, but I'm not a gamer (at all) and I know gaming is the ultimate road-test. Your post indicates you are likely competent enough to draw a thorough conclusion on your own, but I notice you have not considered malware, spyware, virus & anti-virus interference. I suppose this was likely taken care of by a fresh install, but maybe reinfection happened just as fast. One thing I have done is to open Device Manager and identify + update all possible stale drivers. Apple is not that aggressive at providing new ones.
    Must be vexing to have this happen, but it is an interesting post, since people everywhere are wondering if Apple hardware really IS as good as PC....
    I invite gamers everywhere to add to this..... Cheers

  • Performance and cross-platform problems in JMF

    Hi,
    I am building an application for audio and video synchronization, I was using the Processing audio and video libraries to deal with the sound and video but I soon changed to JMF because the Processing video library is strongly dependent on quickime and can only deal with .mov files.
    I got it to work with all the custom GUI elements I had already built (Like graphical timeline representation with time grid, playhead, timeline zoom control, markers and video controls) and it works, but there are states where I have to make a player.getMediaTime() in every frame to synch the video position of the playing video with my graphical playhead representations, and at that stage the application gets really slow and unstable. Are the getMediaTime() and setMediaTime(Time time) that heavy??? is there a way around it (even if it means expanding the actual JMF classes??)
    The other problem is that I tried to run the applet in a MacBookPro and it didn't run, throws a bunch of exceptions saying that it was unable to create the player. what problems could make an applet that runs in windows, not run in Mac OS X??
    Thanks in advance, I've been hitting my head on the walls because of this for a while!

    Of course, the simple and obvious solution is often the valid one. On Windows you need both: /r/n. It appears I'll still need to #ifdef as doing both on the Mac gives me an extra character, but at least that's manageable.

  • Swing worker question -- two lines performing a similar task concurrently

    Hi,
    I've been playing around with swingworker.
    The code below has a window with two buttons and two text areas.
    When you click a button, the text area will count out 10000 random numbers, and print "done." when it's finished.
    Each of the buttons works when pressed separately (one is running while the other is idle) But I can't push one, then the other and have the tasks run independantly.
    One stops and abruptly finishes while the other pauses.
    Sorry to post a lot of code, I'm going through the tutorials, I've looked at the example from the tutorial pretty extensivley, but that is only running one task.
    thanks.
    bp
    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;
    import javax.swing.border.Border;
    import javax.swing.BorderFactory;
    import java.awt.Insets;
    import javax.swing.*;
    import javax.swing.SwingWorker;
    public class TestGui2 extends JFrame{
          JButton button1;
          JButton button2;
          JTextArea tArea1;
          JTextArea tArea2;
          Border border;
          public void buildGui(){
                JPanel mainPanel = new JPanel();
                mainPanel.setLayout(new GridBagLayout());
                GridBagConstraints mpc = new GridBagConstraints();
                mpc.insets = new Insets(3, 10, 3, 10);
             border = BorderFactory.createLoweredBevelBorder();
                JLabel titleLabel = new JLabel("<html><h1><font face=\"Courier\">GridBagLayout Test Gui</font></h1></html>");
                mpc.weightx=0.5;
                mpc.fill = GridBagConstraints.CENTER;
                mpc.gridx=1;
                mpc.gridy=0;
                mainPanel.add(titleLabel, mpc);
                button1 = new JButton("run job1");
             button1.addActionListener(new Button1Listener());
                mpc.weightx=0.5;
                mpc.fill = GridBagConstraints.EAST;
                mpc.gridx=0;
                mpc.gridy=1;
                mainPanel.add(button1, mpc);
                tArea1 = new JTextArea("sample text");
             tArea1.setBorder(border);
                mpc.weightx=0.5;
                mpc.fill = GridBagConstraints.HORIZONTAL;
                mpc.gridx=1;
                mpc.gridy=1;
                mainPanel.add(tArea1, mpc);
                button2 = new JButton("run job2");
             button2.addActionListener(new Button2Listener());
                mpc.weightx=0.5;
                mpc.fill = GridBagConstraints.EAST;
                mpc.gridx=0;
                mpc.gridy=2;
                mainPanel.add(button2, mpc);
                tArea2 = new JTextArea("sample text");
             tArea2.setBorder(border);
                mpc.weightx=0.5;
                mpc.fill = GridBagConstraints.HORIZONTAL;
                mpc.gridx=1;
                mpc.gridy=2;
                mainPanel.add(tArea2, mpc);
                // frame settings
                add(mainPanel);
                setSize(700,450);
                setTitle("TestGui2");
                setDefaultCloseOperation(EXIT_ON_CLOSE);
                setVisible(true);
         // inner classes   
         class Button1Listener implements ActionListener{
              public void actionPerformed(ActionEvent e) {
              BigJobWorker worker = new BigJobWorker();
              worker.execute();
         class Button2Listener implements ActionListener{
              public void actionPerformed(ActionEvent e) {
                   BigJobWorker2 worker2 = new BigJobWorker2();
                   worker2.execute();
         //SwingWorker class
          class BigJobWorker2 extends SwingWorker<Void, Void>{
              protected Void doInBackground(){
                   try{
                        for(int i=0; i<10000;i++){
                        int num2 = (int)(Math.random() * 100);
                        Integer integerNum2 = num2;
                        tArea2.setText("iteration: " + i + " " + integerNum2.toString());
                        //ReallyBigJob rbj = new ReallyBigJob();
                        //tArea1.setText(rbj.doBigJob().toString());
                        tArea2.setText("done.");
                   } catch (Exception e3){
                   e3.printStackTrace();
              return null;
         private class BigJobWorker extends SwingWorker<Void, Void>{
              protected Void doInBackground(){
                   try{
                        for(int i=0; i<10000;i++){
                        int num = (int)(Math.random() * 100);
                        Integer integerNum = num;
                        tArea1.setText("iteration: " + i + " " + integerNum.toString());
                        //ReallyBigJob rbj = new ReallyBigJob();
                        //tArea1.setText(rbj.doBigJob().toString());
                        tArea1.setText("done.");
                   } catch (Exception e2){
                   e2.printStackTrace();
              return null;
          public static void main(String[] args) {
                 javax.swing.SwingUtilities.invokeLater(new Runnable() {
                      public void run() {
                            TestGui2 test = new TestGui2();
                            test.buildGui();
    BTW, I realize this code isn't as OOO as it could be (2 SwingWorker classes that do the same thing, 2 listeners that do the same thing) But I wanted to isoloate the problem first.
    thanks.
    Also, it's not impossible the program is working properly, it just finishes before the textArea can be updated.
    Edited by: badperson on Feb 28, 2008 8:24 AM
    Edited by: badperson on Feb 28, 2008 8:57 AM

    Hi,
    I reworked the code, and it now sort of works What I had wanted was to watch each window increment at the same rate, independant of each other. This will show a number in the window intemittenly, but not in a smooth continuous flow.
          class BigJobWorker2 extends SwingWorker<Void, String>{
              @Override
              protected Void doInBackground(){
                   try{
                        for(int i=0; i<100000;i++){
                        int num2 = (int)(Math.random() * 100);
                        Integer integerNum2 = num2;
                        //tArea2.setText("iteration: " + i + " " + integerNum2.toString());
                        publish("iteration: " + i + " " + integerNum2.toString());
                        //ReallyBigJob rbj = new ReallyBigJob();
                        //tArea1.setText(rbj.doBigJob().toString());
                        publish("done.");
                   } catch (Exception e3){
                   e3.printStackTrace();
                   tArea2.setText("EXCEPTION:");
              return null;
         // override process method
         @Override
            protected void process(List<String> messages) {
         Iterator i = messages.iterator();
              while (i.hasNext()){
              String message = (String)i.next();
              tArea2.setText(message);               
         } // end BigJobWorker2thanks,
    badperson

  • How to improve single thread performance on CMT platform?

    Hi Gurus,
    I have a customer who is comparing a T6340 1.4GHz T2+ with a 5 years old 1.1GHz Itanium based machine.
    Although the T6340 would definitely win in throughput, he expects the T6340 to also win on single threaded application. The 1st test he did was simply incrementing a local variable from 1 to a million in a Sybase stored procedure. The 2nd test was an OLTP type DB transaction. He found T6340 slower in both tests. Is this possible?
    Thanks,
    Anthony

    Try this, almost identical, but with less execution time.
    SELECT
    a.Consumption AS Consumption ,
    a.Cost AS Cost ,
    a.CreatedBy AS CreatedBy ,
    a.CreatedDate AS CreatedDate ,
    a.UpdatedBy AS UpdatedBy ,
    a.UpdatedDate AS UpdatedDate
    FROM Positions b
    JOIN PortConsumption a
    ON a.PortRotationId = b.Id
    WHERE b.VoyageId ='82A042031E1B4C38A9832A6678A695A4';Rgds,
    Ahmer

  • HELP -ZipOutputStream performance is not consistent across servers

    Hi,
    I have a pretty standard code that zips one folder in a zip file using ZipOutputStream. The folders that are zipped are 2 GB in size and consists of TIFF images files.
    We are currentinly in the testing phase and notice very inconsistent performance issues with the Zipping module. On the integration server, to zip 2 GB of data, the zip module took 5 minutes. However, when the same zip code runs on the staging server, it takes 20 minutes. Both the servers are the same in RAM capacity and processing powers. The size of the data is also the same: 20 GB.
    Can anyone help me understand what could be the issue such taht the performance is so detrimental when movingfrom one server to another.
    The only difference between the two servers is that on the integratoin server there is 20 GB of free harddisk space and on the staging server there is only 8 GB of hard disk space. Is it possible that because of the less disk space on staging, the OS itself is taking a few seconds extra on each write to allocate the space. Possibly disk fragmentation also may be a factor.
    For your reference, the zip code is as follows:
    public boolean createZip(File sourceToZip,String zipDestination, String zipFileName) throws IOException
               boolean result=false;
               try{
         // Check that the directory is a directory, and get its contents
         File d = sourceToZip;
         if (!d.isDirectory())
          throw new IllegalArgumentException("Not a directory:  "
              + sourceToZip);
         String[] entries = d.list();
         byte[] buffer = new byte[4096]; // Create a buffer for copying
         int bytesRead;
         ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipDestination+"/"+zipFileName));
         for (int i = 0; i < entries.length; i++) {
          File file = new File(d, entries);
         if (file.isDirectory())
         continue;//Ignore directory
         FileInputStream in = new FileInputStream(file); // Stream to read file
         ZipEntry entry = new ZipEntry(file.getName()); // Make a ZipEntry
         out.putNextEntry(entry); // Store entry
         while ((bytesRead = in.read(buffer)) != -1)
         out.write(buffer, 0, bytesRead);
         in.close();
         out.close();
         result=true;
              catch(IOException e)
                   throw e;
              return result;
         }If anyone has any ideas let me know Thanks.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

    The free space could be an issue, but you can improve your code:
    ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipDestination+"/"+zipFileName));
    ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(zipDestination+"/"+zipFileName)));That will improve your performance considerably on all platforms. Also change your buffer of 4096 to 16k or 32k.
    You could also consider converting the TIFF files to JPEG instead of zipping them at all.

  • AVPresence component performance

    We have been working at testing a virtual meeting room based
    on the AVPresence component that came with FMS developer edition
    and have had some good results.
    We had some very promising tests with participants across the
    country and even from Africa and Europe having very useable
    experiences.
    But we have also experienced inconsistant performance
    including audio being out of sync with the video (by 10 or 20
    seconds), the video displaying in "slow motion" or some
    participants experiencing long delays in receiving the video/audio
    stream (30 to 45 seconds) between one person asking a question and
    the other participant hearing the question.
    Some of the longest delays were to participants in Brazil
    (the FMS is located in Canada) but we also saw unexceptable
    performance to computers on the same network as the server and also
    to some participants using the internet cable provider as the
    server is connected to. The problems have occurred with only 2 or 3
    connections so it is not running into the 10 connection limit on
    the developer license.
    Are these poor results simply some of the "limitations" built
    into the developer edition ? Or are we going to continue to run
    into serious user experience issues once we move to a fully license
    FMS?

    FMS components were not create to have best performance so
    you should never rely on a FMS component in a commercial product...
    The worst component is probably the connection light that will call
    server a the interval you set this is a major issue (you should
    call server only when you need this data). Developer license is the
    same as the full license.
    Your delay can from a lot of things for each client : slow
    computer, slow internet connection, firewalls, upload and download
    limits, flash player version, OS platform(sound echo on Mac when
    sound kHz is under 44), ...
    From server side : Ram size, CPU power, do you use FMS and
    your Web Server on the same computer, bandwidth size allow, are you
    connecting directly to the RISQ network(in Canada)...
    Delay that you obtain is to long, is absolutely NOT NORMAL
    for sure. Sometime, from my experience, problem is 30 inch in front
    of monitor... so try the same test with a competent technician...
    If computer on the same network in the same location had poor
    results problem is probably from your network or your server...
    post more technicals informations if you can!

  • Server design (multithreading, serialization, and performance)

    (I'm not asking for anyone to design my software for me, I'm just looking for a response along the lines of "That's called XYZ server design, look for books on this topic" sort of thing.)
    Summary:
    I have a Server application (S) that accepts connections from many Clients (C). The clients request pieces of a large internal data structure, *"Data"* (D). The clients are totally passive with respect to Data, they only read (from the Server) and do not initiate any modification.
    D is really a structure of structures: it's hashtables of hashtables, with objects that hold other hashtables and vectors, etc. etc., down a few levels. The clients don't read the entire structure, just parts of it.
    The Server is multi-threaded, with threads handling client communications, and a very important thread that modifies Data by processing messages from an external source. I call this part of the software the Message Processor (P). These messages are what drives manipulation of the data structure.
    [**CLICK HERE FOR A DIAGRAM**|http://imgur.com/sb5ZU]
    There are a couple of design questions I'm wondering about:
    The data structure D is a shared resource between the Client threads and the Message Processor thread within the Server, with the Client threads only reading from the data structure (and writing over TCP/IP), and the Message Processor both reading and modifying it.
    Right now I am using locks to lock the structure when a client requests data, so that the processor cannot modify the data while it is being serialized.
    I also lock the data structure when a message is received and the structure has to be modified by P, to prevent the structure from being serialized while it is being modified.
    My question is, is this the only design pattern I can use in this situation? It looks like the only way to improve performance is to
    a) make sure I only lock when necessary (to prevent data corruption or inconsistency)
    b) lock the data for as short a time as possible
    c) make sure the parts of the data structure being sent to clients are serialized as fast as possible (write my own writeObject/readObject methods)
    Any insight is appreciated, the shorter and more candid, the better. Don't be afraid to say I'm in over my head and should read a few books by author so-and-so, that's a good starting point :)

    jta23 wrote:
    (I'm not asking for anyone to design my software for me, I'm just looking for a response along the lines of "That's called XYZ server design, look for books on this topic" sort of thing.)
    Summary:
    I have a Server application (S) that accepts connections from many Clients (C). The clients request pieces of a large internal data structure, *"Data"* (D). The clients are totally passive with respect to Data, they only read (from the Server) and do not initiate any modification.
    Are you using Servlets? That should facilitate the development of your server immensely (e.g., maintains sessions, handles multi-threading, implements HTTP out of the box, dozens of additional frameworks available, etc.)
    D is really a structure of structures: it's hashtables of hashtables, with objects that hold other hashtables and vectors, etc. etc., down a few levels. The clients don't read the entire structure, just parts of it.
    You can get away with using Map of Map or Map of List or whatever level of nesting you want. Generally, however, it is better to implement a canonical and rich domain model. [http://www.eaipatterns.com/CanonicalDataModel.html]. [http://www.substanceofcode.com/2007/01/17/from-anemic-to-rich-domain-model/].
    The Server is multi-threaded, with threads handling client communications, and a very important thread that modifies Data by processing messages from an external source. I call this part of the software the Message Processor (P). These messages are what drives manipulation of the data structure.
    [**CLICK HERE FOR A DIAGRAM**|http://imgur.com/sb5ZU]
    There are a couple of design questions I'm wondering about:
    The data structure D is a shared resource between the Client threads and the Message Processor thread within the Server, with the Client threads only reading from the data structure (and writing over TCP/IP), and the Message Processor both reading and modifying it.
    Right now I am using locks to lock the structure when a client requests data, so that the processor cannot modify the data while it is being serialized.
    I also lock the data structure when a message is received and the structure has to be modified by P, to prevent the structure from being serialized while it is being modified.
    My question is, is this the only design pattern I can use in this situation? It looks like the only way to improve performance is to
    a) make sure I only lock when necessary (to prevent data corruption or inconsistency)This can easily be handled by a Servlet. I think the best way to do this would be to create a Singleton. [www.javacoffeebreak.com/articles/designpatterns/index.html]. Be careful, however. Singletons are like global variables. They can easily be abused. If you did not want a singleton, create a lock table in your database. The RDBMS will handle synchronization for you, and it is an elegant solution. You can perform a similar feat using a filesystem lock that you create. Up to you. Whether in the JVM, in the database or in the filesystem.
    b) lock the data for as short a time as possibleWrite an efficient method to insert or update or delete the data. If you are dealing with a large amount of data, consider using a native tool like Oracle's SqlLoader or using vendor-specific JDBC syntax. If you need to support multiple types of databases, use bulk JDBC operations.
    c) make sure the parts of the data structure being sent to clients are serialized as fast as possible (write my own writeObject/readObject methods)
    Take a look at JBoss serialization. It is much more compact that Java's. Or do some experimenting. JSON is much more compact than XML normally, and it can be read by a Javascript client to facilitate any Ajax you might want to use for some flash and sizzle.
    Any insight is appreciated, the shorter and more candid, the better. Don't be afraid to say I'm in over my head and should read a few books by author so-and-so, that's a good starting point :)No, take it in bite sized pieces. Start with the server. Then work on the client. Play around with your locking strategy. Optimize your update of the data. Don't do everything at once.
    - Saish

  • I have a contact I no longer use and have deleted it from Contacts on my iMac and iPad, but it still keeps appearing in the To: box when I enter a similar contac, obote the iMac and iPad. How do I completely delete it to prevent this from happening? Thank

    I have a email address I no longer use and want, so have deleted it from my address book on my iMac and iPad. It kept reappearing when I started to type a similar email address, so I was advised to delete it by going to Mail on the iMac...  Mail > Window > Previous Recipients... and Delete from there... which worked, and it now no longer appears in the To: box when typing a similar email address in Mail on my iMac.
    However, even though I have deleted the same contact/email address on my iPad, it still appears when typing a similar email address in Mail on the iPad. How do I perform a similar action as I did on my iMac, to prevent it from reappearing?
    Hope someone can help.
    Thanks, Simon.
    On the iMac..

    The only way that I currently know of to remove old and invalid email addresses on the iPad is to restore back to factory defaults, which I assume that you won't want to do. You could try leaving feedback for Apple, and maybe in a future update we'll be able to edit them : http://www.apple.com/feedback/ipad.html

  • Bex Report Performance

    Dear Friends,
    I would like to know is the complex authorizations can also cause the Bex report performance.
    One of my scenerio is like there are two users A & B
    A is having relevant authorizations for reporting, Drill down etc which are required.
    B is having SAP All authorization.
    When the same report has been executed by both users on the same system.
    the data retrieved by user B(SAP_ALL authorization) is quite faster than User A.
    Its like ther diffference of about 10 minutes.
    There are some exsclude selections in report.
    So my conclusion is like the complex authorizations do also hampers the query performance.
    Please confirm & share your views.
    Thanks & Best Regards,
    Vivek Tripathi
    +91-9372313000

    Hi Vivek
         Can you help us understand what was the exact problem and how you resolved it / solution at Extraction / Modeling / Reporting end.
         I have a quite similiar issue with my report i have Header + Item report on Infoset
    u2022     Header report takes seconds and item report takes minutes
    u2022     The same report executed with exact parameter has inconsistent performance results meaning one time it takes 1 minutes next time same report same user and same authorization takes 5 minutes.
        Any help on this would be really greatfull. Suspecting is not an issue with the report at all , as no changes happened between the pre and post check.
    _Additional Information : _
    We Create Secondary -Bitmap index every week end i do not see that is one of the route cause.
    Except that we have our regular daily loads that are running for master data loads and transaction data loads in series.
       Thanks in Advance.
    Much Regards
    Jagadish Thirumalachetty.
    Edited by: Jagadish Thirumalachetty on Jul 14, 2010 1:35 PM

  • PLEASE HELP! Aperture becomes MISERABLY slow after performing perfectly.

    Posting on this forum is my absolute last resort, but I am absolutely desperate.
    I am a professional photographer who works on Aperture for hours daily. I made the switch to Aperture from a Bridge-based workflow a few months ago. Ever since I started importing all of my past work into Aperture, I have been dealing with radically inconsistent performance which is, literally, causing me days of delays, and thousands of dollars in missed work.
    *Here is how I am set up.* All of my images are being referenced on a WD My Book via FireWire 800 connection directly to my computer - no daisy chaining. It is a 1TB drive, and it is referencing about 75,000 photos - mostly RAW. I did this to maintain a traditional file hierarchy incase I didn't have access to Aperture. My Aperture library folder is stored on my iMac's main HD. When I started using Aperture, I had an 20" iMac 2.4Ghz with 2GB RAM, and a Radeon 256MB video card - which definitely exceeds the minimum system requirements.
    *When I first open up Aperture,* it runs beautifully. Quickly cycling though images, making snappy adjustments, exporting to Photoshop, and saving quickly. Absolutely everything I love it for. I would say after about 15-30 minutes of usage, the program slows to a near halt. Photoshop will slow down significantly, saving in Photoshop takes 30-45 seconds, and when I return to Aperture, images will load previews indefinitely, rendering adjustments useless without finagling. If I get adjustments to load, the adjustments are choppy and inconsistent. Exporting takes forever. Switching from project folders, creating galleries, changing viewing parameters - all unacceptably slow. It absolutely sabotages the performance of my computer. I end up having to completely restart the program to reacquire those glorious 15-30 minutes. This is all so strange considering initially, the program runs as it should! Perfectly! It is not that my computer isn't up to Aperture's specifications, or it would be slow(er) from launch.
    *This is what I have done so far.* I initially checked the consistency of the Aperture library, as well as rebuilt the library (several times). This caused no improvement. I then contacted Apple via phone support which proved useless. I am convinced the support techs are doing nothing more than reading troubleshooting dialogue from the website, because we got nowhere. I then brought my iMac and external HD into the Apple Store to show them specifically what I was experiencing. After talking to a rather snippy store employee who gave me circular answers and then suggested that I "just return it," I requested the manager. He was pleasant, and kind enough to suggest a RAM upgrade, and provide it for free. I then had 4GB RAM, and considering I didn't have an opportunity to play with it more than 20 minutes in the store, I left hoping that would be the solution.
    After getting back to my office and spending a considerable amount of time in the program, I saw that little progress was made. Yes, performance was certainly faster, especially for those 15-30 minutes, but the same problem resurfaced.
    I suspected that it may be my WD external HD, considering I had loaded it's software after purchasing it. I suspected that considering it does have a sleep mode, an auto-off mode and a "capacity gauge," it may have gone into sleep mode as I was working on a file, and had to "wake up" when trying to save it, causing the workflow to go haywire. I proceeded to uninstall all of my WD software. I checked the drive's consistency, and I checked for errors via several high-end drive repair and recovery programs, and it was operating perfectly.
    Even after this, I am still experiencing the SAME problem, and I am at a stand-still with NO idea what to do.
    PLEASE! I am begging for any assistance. I can't work like this, and I can't bear switching to another (inferior) workflow.
    Thank you!!

    Hi
    I couldn't help feeling sympathetic to your situation. I dont wish to state the obvious, but have you done all the basic checks...Is this thread any help..
    http://discussions.apple.com/message.jspa?messageID=8093761#8093761
    Updating to the latest version 10.5.4 could be a help. There is a new update available now 10.5.5 but I choose to let it settle down personally before I add it. Look at the forums and follow its progress before installing.
    Hope you get things resolved...

Maybe you are looking for