Efficiency improvement in JTable

I need some suggestions/ways to improve the efficiency of my JTable which is to display huge data and to perform update/insert/delete as fast as 20 per second. To minimize the flickering issue I am using double buffering. I have implement ed my own color render and used data key to row number hashtables to update the rows efficiently.
I ran a test case in which only insertion of new rows are being done at very high rate wihtout any custom renderors the cpu usage of IE (internet explorer) goes 100 percent on a pentium 4 with 2.8 GHtz processor and 512MB ram
Eagerly waiting for the response(s)
Regards

JTable gives many opportunities for optimization. As you've put in some thoughts,
pardon me for a more general answer to the public.
Double buffering can be contra-productive: in the newer versions it is on by default.
The CellRenderer object renders for every table cell.
What is important, that repaints are not triggered too soon.
Ensure that cells do not get repainted needlessly.
Set the table row heigth to a fixed value.
Do not use the DefaultTableModel for huge data.
Ensure that getValueAt is fast.
You might consider hinting for a large data model.
Small equal Strings might be mapped to one object (like String.internalize).
If feel a bit hesitant on String.internalize, as it does not free the JVM of these String constants. So use a HashMap<String, String>.
HashMap is better than Hashtable, but you must then pay attention to synchronization.
Threading definitely improves (and complicates) things.
Make the test in an application, rather than an JApplet.

Similar Messages

  • Efficient JTable updates

    RE: Java 1.5 Update 16
    All,
    I'm sure I'm not covering new ground here, but my web searches are not resulting in any useful information. I'm trying to figure out how to efficiently update a JTable when the underlying data model changes. I'm aware of the AbstractTableModel and API such as fireTableCellUpdated. However, the problem I've observed is that the JTable code seems to be redrawing a rect around all the cells that have changed during a particular EventQueue loop. So, let's say just two cells have changed 0:0 and X:Y where X = numRows and Y = numCols. Even though only two cells have been updated (i.e. I have called fireTableCellUpdated twice in succession on 0:0 and X:Y), in my testing, the entire table is redrawn, because the two cells in question are the upper left cell and the lower right cell in the table. The JTable redrawing code seems to draw one big rect around both cells and ends up updated everything in between. If I break up the calls to fireTableCellUpdated to separate passes through the EventQueue, then just the corners are updated. However, in the case of my data model and rapid firing of updates, I cannot break things up this way. Does anyone know if there's any better way to approach this? Any advice would be much appreciated.

    I'm attaching code that demonstrates this issue. Note that the code purposely does not make use of the DefaultTableModel's setValueAt API. Use of this method would fire table cell updates. I'm updating the underlying data, and then manually firing the updates so that the issue manifests itself quite starkly when the app is run. In the default form, the entire table is updated. If you follow the comments and modify the code, you'll see the app run with only the upper left and lower right hand corner cells updating. Note also that I do not necessarily think this is a bug in JTable. You can imagine a somewhat inverted scenario where many interior cells are updated but not all. If JTable made a bunch of separate calls to draw small individual rects, that might end up being much less efficient than simply redrawing the whole table.
    public class TableUpdateTest extends JFrame {
        public static void main(String[] args) {
            new TableUpdateTest();
        private static final Random RANDOM = new Random();
        public static int randomIntInRange(int low, int high) {
            if (low == high) {
                return low;
            if (low>=high) {
                throw new IllegalArgumentException("Cannot generate randomIntInRange because low " + low + " is not less than high " + high + ".");
            int random;
            synchronized (RANDOM) {
                random = (Math.abs(RANDOM.nextInt()) % ((high+1) - low)) + low;
            return random;
        TableUpdateTest() {
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            final Vector<Vector<String>> data = new Vector<Vector<String>>();
            Vector<String> datum = new Vector<String>();
            datum.add("Suzanne");
            datum.add("Smith");
            datum.add("Suzie");
            data.add(datum);
            datum = new Vector<String>();
            datum.add("Joseph");
            datum.add("Bank");
            datum.add("Joey");
            data.add(datum);
            datum = new Vector<String>();
            datum.add("Ezra");
            datum.add("Pound");
            datum.add("Ezzie");
            data.add(datum);
            datum = new Vector<String>();
            datum.add("Gordon");
            datum.add("Lightfoot");
            datum.add("Gordo");
            data.add(datum);
            datum = new Vector<String>();
            datum.add("Thomas");
            datum.add("Pickering");
            datum.add("Tom");
            data.add(datum);
            datum = new Vector<String>();
            datum.add("Jerry");
            datum.add("Mathers");
            datum.add("Beaver");
            data.add(datum);
            Vector<String> columnNames = new Vector<String>();
            columnNames.add("First Name");
            columnNames.add("Last Name");
            columnNames.add("Nick Name");
            final DefaultTableModel dataModel = new DefaultTableModel(
                    data,
                    columnNames
            new Timer(250, new ActionListener() {
                private boolean toggle;
                public void actionPerformed(ActionEvent e) {
                    // Switch everyone's names around by manipulating
                    // the underlying data structures and NOT using
                    // the DefaultTableModel API which would fire an
                    // update for every cell in the table.
                    for (int i = 0, size = data.size(); i < size; i++) {
                        Vector<String> datum1 = data.get(i);
                        int otherIndex = randomIntInRange(0, size-1);
                        Vector<String> datum2 = data.get(otherIndex);
                        String lastName = datum1.get(0), firstName = datum1.get(1), nickName = datum1.get(2);
                        datum1.set(0, datum2.get(0));
                        datum1.set(1, datum2.get(1));
                        datum1.set(2, datum2.get(2));
                        datum2.set(0, firstName);
                        datum2.set(1, lastName);
                        datum2.set(2, nickName);
                    // Now that everyone is jumbled, fire updates to the
                    // upper left and lower right hand corners only.
                    // These two lines together cause the entire
                    // table to be redrawn.
                    dataModel.fireTableCellUpdated(0,0);
                    dataModel.fireTableCellUpdated(data.size(),2);
                    // Uncomment the code below and comment out the two lines
                    // above, and watch just the corner cells update.
                    /*if (toggle) {
                        dataModel.fireTableCellUpdated(0,0);
                    } else {
                        dataModel.fireTableCellUpdated(data.size()-1,2);
                    toggle = !toggle;*/
            }).start();
            JPanel panel = new JPanel(new BorderLayout());
            JTable table = new JTable();
            table.setModel(dataModel);
            JScrollPane scrollPane = new JScrollPane(table);
            panel.add(scrollPane);
            setContentPane(panel);
            setSize(350, 200);
            setLocation(300, 300);
            setVisible(true);
    }

  • How to improve performance of this SQL query?

    Hi,
    I have a query that tries to build a string (RPATH) for use as a url parameter. The query is:
    SELECT DISTINCT USERNAME, PASSWORD, ROLE, RIGHTS,
    DECODE(GEO, ROLE, 'g='||NVL(GEO,'none'), NULL)||
         DECODE(AREA, ROLE, 'g='||NVL(GEO,'none')||'&a='||NVL(AREA,'none'), NULL)||
         DECODE(REGION, ROLE, 'g='||NVL(GEO,'none')||'&a='||NVL(AREA,'none')||'&r='||NVL(REGION,'none'), NULL)||
         DECODE(DISTRICT, ROLE, 'g='||NVL(GEO,'none')||'&a='||NVL(AREA,'none')||'&r='||NVL(REGION,'none')||'&d='||NVL(DISTRICT,'none'), NULL)||
         DECODE(OFFICE, ROLE, 'g='||NVL(GEO,'none')||'&a='||NVL(AREA,'none')||'&r='||NVL(REGION,'none')||'&d='||NVL(DISTRICT,'none')||'&o='||NVL(OFFICE,'none')
    , NULL) RPATH
    FROM (SELECT U.*, L.*
         FROM (SELECT * FROM T_USERS WHERE USERNAME='xxx' AND PASSWORD='yyy') U, T_LOC_SUB L
         WHERE U.ROLE IN ('WW', L.GEO, L.AREA, L.REGION, L.DISTRICT, L.OFFICE))
    GROUP BY USERNAME, PASSWORD, ROLE, RIGHTS, GEO, AREA, REGION, DISTRICT, OFFICE;
    T_USERS is defined as
    CREATE TABLE T_USERS (
    username          VARCHAR2(10)     CONSTRAINT T_USERS_username_pk PRIMARY KEY,
    password          VARCHAR2(10),
    role                    CONSTRAINT T_USERS_role_FK REFERENCES T_LOC_MAIN(loc),
    rights          VARCHAR2(3)
    T_LOC_SUB is defined as
    CREATE TABLE T_LOC_SUB (
    geo          CONSTRAINT T_LOC_SUB_geo_FK REFERENCES T_LOC_MAIN(loc),
    area          CONSTRAINT T_LOC_SUB_area_FK REFERENCES T_LOC_MAIN(loc),
    region          CONSTRAINT T_LOC_SUB_region_FK REFERENCES T_LOC_MAIN(loc),
    district     CONSTRAINT T_LOC_SUB_district_FK REFERENCES T_LOC_MAIN(loc),
    office          CONSTRAINT T_LOC_SUB_office_FK REFERENCES T_LOC_MAIN(loc)
    T_LOC_MAIN is defined as
    CREATE TABLE T_LOC_MAIN (
    loc          VARCHAR2(4)     CONSTRAINT T_LOC_MAIN_loc_PK PRIMARY KEY,
    label          VARCHAR2(60),
    rank          NUMBER
    REGION and DISTRICT columns in T_LOC_SUB may be NULL at times. How can I rewrite the SQL to make it run faster or more efficiently?
    Please help.. Thank you..

    Hi,
    I just realised I can simplify the query to:
    SELECT DISTINCT USERNAME, PASSWORD, ROLE, RIGHTS,
    DECODE(ROLE,
         GEO, 'g='||NVL(GEO,'none'),
         AREA, 'g='||NVL(GEO,'none')||'&a='||NVL(AREA,'none'),
         REGION, 'g='||NVL(GEO,'none')||'&a='||NVL(AREA,'none')||'&r='||NVL(REGION,'none'),
         DISTRICT, 'g='||NVL(GEO,'none')||'&a='||NVL(AREA,'none')||'&r='||NVL(REGION,'none')||'&d='||NVL(DISTRICT,'none'),
         OFFICE, 'g='||NVL(GEO,'none')||'&a='||NVL(AREA,'none')||'&r='||NVL(REGION,'none')||'&d='||NVL(DISTRICT,'none')||'&o='||NVL(OFFICE,'none'),
         NULL) RPATH
    FROM (SELECT U.*, L.*
    FROM (SELECT * FROM T_USERS WHERE USERNAME='xxx' AND PASSWORD='yyy') U, T_LOC_SUB L
    WHERE U.ROLE IN ('WW', L.GEO, L.AREA, L.REGION, L.DISTRICT, L.OFFICE))
    GROUP BY USERNAME, PASSWORD, ROLE, RIGHTS, GEO, AREA, REGION, DISTRICT, OFFICE;
    Anyone can offer a better and more efficient improvement?
    Thanx!

  • JTable scrolling in Windows 7 very slow compared to Windows XP

    I am running the following test program on jdk-6u18. The program displays a simple 900 rows x 20 columns table with each cell being an integer 1. When I run this is Windows 7, the scrollbar handle cannot keep up with the mouse movement as I drag it up and down. But the scrolling is very smooth if I run it on a Windows XP virtual machine on the same PC. Is there any way to improve the JTable performance on Windows 7?
    Thanks.
    import java.awt.*;
    import javax.swing.table.*;
    import javax.swing.*;
    public class TableTestSimple extends AbstractTableModel {
        static final Integer tableValue = new Integer(1);
        static final String columnName = "Column";
        @Override public int getColumnCount() {
            return 20;
        @Override public int getRowCount() {
            return 900;
        @Override public Object getValueAt(int row, int column) {
            return tableValue;
        @Override public String getColumnName (int columnIndex) {
            return columnName;
        @Override public Class getColumnClass (int columnIndex) {
                return Integer.class;
        public static void main(String[] args) throws Exception{
            TableTestSimple t = new TableTestSimple();
            JFrame frame = new JFrame("Table Test");
            JPanel panel = new JPanel();
            panel.setLayout(new BorderLayout());
            JTable table = new JTable(t);
            JScrollPane scrollPane = new JScrollPane(table);
            panel.add(scrollPane, BorderLayout.CENTER);
            panel.setPreferredSize(new java.awt.Dimension(1000, 1000));
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setContentPane(panel);
            frame.pack();
            frame.setVisible(true);
    }

    I ran your code and didn't get the problem stated.Microsoft Windows [Version 6.1.7600]
    Copyright (c) 2009 Microsoft Corporation.  All rights reserved.
    C:\Users\Darryl>java -version
    java version "1.6.0_17"
    Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
    Java HotSpot(TM) Client VM (build 14.3-b01, mixed mode, sharing)Possibly a defective video driver. You could try installing optional updates from Windows Update.
    db

  • Memory Error with Tomcat 4.1

    I have a Tomcat 4.1 installation on a Linux 7.2 box. Tomcat uses
    mod_jk with Apache. We are currently in a development phase and change alot of jsp's on a daily basis. Eventually it seems that Tomcat runs out of memory for the compilations and gives the following message:
    org.apache.jasper.JasperException: Unable to compile class for JSP
    An error occurred at line: -1 in the jsp file: null
    Generated servlet error:
    [javac] Compiling 1 source file
    The system is out of resources.
    Consult the following stack trace for details.
    java.lang.OutOfMemoryError
    After Tomcat is restarted everything appears to to be okay for a time. Eventually this problem will come back. The problem appears to be only when jsp files are changed. Running jsp's ( which were previously compiled and have been unchanged) run just fine.
    In the /var/tomcat4/conf/tomcat4.conf file I have the following command
    uncommented:
    JAVACMD="$JAVA_HOME/bin/java -Xms6m -Xmx100m"
    I am running java 1.4.1 on the Linux box.

    I was looking at the Jakarta web site and under the Tomcat4.1 documentation it gives a description of what is new in 4.1. It states:
    Rewritten Jasper JSP page compiler
    Performance and memory efficiency improvements
    Among other things. Could they have a memory leak?

  • In November 2014 iOS X Yosemite had poor reviews. Have problems or idiosyncrasies been corrected?

    I have been reluctant to upload the OS upgrade from Mavericks to Yosemite until I read good reviews. One user talked about a card upgrade. Where can I learn more and what's happening now in March 2015?

    If I believed all the negative comments on this website I'd still be using my Macintosh SE/30 from 1989. I am not familiar with any required "card upgrade".
    Nearly all operating system upgrade headaches are the result of incompatible or poorly implemented third party software. Complaints regarding incompatible software or ill-conceived system modifications have arisen with every OS X version ever released. They exist in roughly the same proportion with Yosemite, and they will continue to exist with every OS X release there will ever be. Apple can't fix bugs in third party software they did not create and do not control. If you contemplate upgrading, be sure to uninstall garbage "anti-virus" and third party "cleaning" or "optimizing" apps that should not be installed on any Mac, and research your essential software for compatibility. "Essential software" specifically excludes all the aforementioned garbage, regardless of their respective developers' claims of Yosemite compatibility.
    All my Macs are running Yosemite just fine, and there's no way I would ever contemplate reverting to any earlier OS version.
    Assuming that you are already in the habit of routinely backing up your system you can install Yosemite at no risk and at no cost. If you do not routinely back up your system, you should. Obtain an external USB or FireWire hard disk drive for your Mac, then download and install Yosemite on it. You can choose to start your Mac from that disk or the internal one using Startup Manager (hold an option key while you start your Mac), and evaluate Yosemite at no risk whatsoever to your existing installation. Just be sure to designate the proper installation location for Yosemite when you get to that installation step.
    Running OS X from an external USB hard disk won't be as fast as the iMac's internal one, but it will be sufficient to draw conclusions regarding its suitability for your needs. All else being equal Yosemite should perform somewhat better than Mavericks due to various efficiency improvements.
    An external hard disk drive of adequate capacity can be purchased for well under $100 - much less than the cost of some previous OS X upgrades themselves. When you satisfy yourself that Yosemite works for you, then "clone" the external disk's contents to your internal one, or just install Yosemite directly, and use the external disk for backup purposes - which you ought to be doing anyway.

  • IDCS3- Importing Word Body Text: Best Approach?

    Hi all, first post here. Am relatively new to the wonders of InDesign in my new occupation, and during the current quiet period have decided to look at some areas of our DTP department and how our lives could be made easier.
    Currently we receive the bulk of our body text as Word documents, which we import to InDesign. Our templates are very rigid and rarely deviate from one report to another, so I've been looking into a script or alternative method of painstakingly copying, pasting and changing paragraph styles in ID. I've looked into XML, basic VB scripts but can't help but wonder whether doctoring the original Word docs at source would be easier?
    Thanks in advance, all feedback appreciated.

    I take a "bulk" approach to cleaning up and formatting Word files. The
    more I can work with at one time, the more efficient I am, because
    finding and replacing 100 items takes about the same amount of time as
    finding and replacing 10 items.
    So if I were working with inserts, I would want to Place all the inserts
    in one big Indesign file; lock down all the character formatting with
    character styles (by searching for superscript, replacing with a
    superscript character style, searching for italic, replacing with an
    italic character style etc.); search for clues in the Word files and
    apply paragraph styles (search for bullets, replace with a bulleted list
    style; search for left/right indents, replace with an extract style,
    etc.); clean out all the double spaces, extra tabs, returns, and other
    junk; standardize dashes, quotes, and ellipses; and select all, remove
    overrides.
    Some of this can be automated with scripts. Some of it has to be
    customized based on the particular weird mangle that particular weird
    author made to the Word file. A lot of it can be speeded up just by
    saving Find/Replaces.
    Then copy/paste, same as you've been doing.
    Any other efficiency improvements are going to have to involve your
    authors, most of whom (at least in my experience) are doggedly resistant
    to efficiency, often preferring their bibliographies and indexes to
    contain thousands of carefully placed returns, spaces, and tabs instead
    of a simple hanging indent setting.
    But if they were, by some miracle, open to trying something different,
    you might make them some Word templates, tell them to use consistent
    styles (and to limit themselves to those styles). Another option is
    InCopy, which would let your authors bypass Word entirely and end your
    copy/paste business.
    Kenneth Benson
    Pegasus Type, Inc.
    www.pegtype.com

  • Multiple XSL's from one XML?

    So I've got this XML file pointing to an XSL stylesheet, and
    its working great (client-side goin' on here), and yet I begin to
    wonder about the efficiency improvements (since I took data from 3
    HTML pages, and coded it as one XML file) if you can only apply one
    XSL stylesheet to one XML file. Kinda defeats the purpose if you
    have to write two more XML files for two more XSL stylesheets, eh?
    Then I'd be left with 6 files where I started with 3, and the same
    management nightmare. Anyone have a solution to this perplexity,
    cause it doesn't seem like its been solved easily in the forums
    here or anywhere I can find on the Web. I'm thinking maybe
    conditionals, but I'm not sure where to go from there. Thanks in
    advance!

    I'm going to need a little more detail. I have very little
    ASP experience. Are you saying to use the <xsl:include> tag
    in the individual XSL Stylesheets to pull only the data I want from
    the XML file? That's the idea. I've already got different repeat
    areas setup in three different XSL files, each pulling different
    areas of the XML file. But then, how would I direct the browser to
    display the correct XSL file to begin with, when the original call
    to display it is just a link to the XML file, which can only push
    out one of the XSL files to the viewer?

  • What to learn (frameworks, patterns, libraries...) to become a pro?

    Hi all
    I know the Java syntax quite well and I have some experience in OO programming, but I have not done much in Java yet.
    I know PHP well and I got used to code PHP in OO, but the further I get the less I'm satisfied with PHP.
    I'm looking for a really professional web developing environment so I can profit from the surely existing really good libraries, patterns etc. that exist in this world... so I found JSP's would be the step for me to take to become a professional web developer and integrate myself into the JSP standards to support this really big world with my own knowledge and work.
    So I wanted to know: what do I have to do to get a very fundamental professional knowledge in the JSP world?
    - What patterns should I learn (links, please!)?
    - What libraries out there are really useful for standard webdevelopment?
    - What frameworks do exist in JSP?
    You see, I don't really have a clue yet how work is done in JSP, so I'm reading through some books now to get basic informations, and then I want to extend my knowledge using the web.
    I'd be very grateful for some comments and informations and help. :-)
    Thanks a lot and have a good time,
    Josh

    Hey Josh,
    I think I replied to another message you had posted that was not entirely dissimilar to this one...
    For JSP development there are more than a few frameworks out there. Struts is by far the largest group as well as one of the older technologies, and I think Tapestry have the most fervent group of followers and the techology has peen picked up by Apache. These are, IMHO, the leaders in this arena.
    JSF (JavaServer Faces) looks to be the future. It still has some way to go, however it is at a point now that it is feasible for use in production. This is a good time to jump in there as most of the plethora of J2EE developers out there (myself included) seem to be resisting this one, but it truly promises some significant efficiency improvements. I think once this bugger gets a hold, it'll be here for awhile. It's good stuff.
    All this being said, this tecnology is excellent for web based applications (I still feel it's by far the best out there for this type of work), but it's a stupid way to build a website (IMHO). if you want to build a website with a user list, etc. stick with PHP. It's easy and you already know it.

  • Planning on buying a Mac Pro

    Hi, I'm planning on buying a Mac Pro 3Ghz in the near future and had a few questions before I buy it.
    I plan on using the computer mainly for games but I want to have it for a long time and be able to handle whatever I throw at it (games and otherwise). I had a iMac G3 300Mhz for about 5 years and been useing a iMac 2Ghz more recently, both of which I have been very pleased with but I know a regular tower has alot more options and complications too.
    At first I was planning on buying all my RAM from Apple and just getting the monitor seperate (since they seem pretty overpriced), on futher research I found that the 2GB RAM I was going to get at first is really a min. amount for the system and 4GB much better for getting full performance from the computer. Now from Apple the price difference from 2BG to 4GB is $800, not cheap.
    So my first question is where can I find memory thats not so expensive? and what are the good brands to buy?
    I also found out that the hard drives that apple uses aren't that good. Was going to get the 250GB HD but I probly don't need that much and can always add more so size isn't a big factor.
    So what brand has good hard drives and where would be the best place to buy it?
    I'm now planning on getting the computer with the min. HD and RAM and upgrading from there but I also want to be able to put in all the upgrades right away and not have to worry about adding more for awhile.
    Last is the monitor but that doesn't concern me as much as the main computer. I want to get atleast a 20", any suggestions you have would be appreciated.
    Thanks for taking the time to read my post.

    Last fall Intel customers that run heavy servers were clamoring for Intel to get new chips out the door. Servers are often optimized for multi-cpu/cores, and the new chips run cooler, take less power to run, AND less power to cool. The costs of running a server farm makes any reduction in cost important today. Plus, even though they are clocked slower, are somewhat more efficient (improved and more mature?) that and stability are often what drives servers, not the hottest (figuratively and literally) cpus and systems.
    So even if/when Intel does start shipping, and tested/qualified for OEMs they may not have any "left over" for awhile for desktop. And it could be they might even end up in Apple Xserves rather than MacPro.
    Given that it took until November (late) for Apple to use Xeon in Xserve I almost wondered if it takes longer and more testing (and revising version of server) or if Apple might be hoping to delay and see if Intel could supply the new 53xx chip (would they use single quad-core or two? or have both configurations?).
    Often it does take a "patched" or revised OS to deal with any new hardware as well (10.4.9? 10.5.1? something in-between?).
    Anyone whose work is really cpu bound on G5 Quad or Mac Pro will probably be first off the line for these, as they were for the other two systems.

  • Is it safe to upgrade yet?

    Is it safe now to upgrade a MacBook Pro from 10.8.5 to Yosemite? Or should I wait longer?

    Assuming that you are already in the habit of routinely backing up your system you can install Yosemite at no risk and at no cost. If you do not routinely back up your system, you should. Obtain an external USB or FireWire hard disk drive for your Mac, then download and install Yosemite on it. You can choose to start your Mac from that disk or the internal one using Startup Manager (hold an option key while you start your Mac), and evaluate Yosemite at no risk whatsoever to your existing installation. Just be sure to designate the proper installation location for Yosemite when you get to that installation step.
    Running OS X from an external USB hard disk won't be as fast as the Mac's internal one, but it will be sufficient to draw conclusions regarding its suitability for your needs. All else being equal Yosemite should perform somewhat better than Mountain Lion due to various efficiency improvements.
    An external hard disk drive of adequate capacity can be purchased for well under $100 - much less than the cost of some previous OS X upgrades themselves. When you satisfy yourself that Yosemite works for you, then "clone" the external disk's contents to your internal one, and use the external disk for backup purposes - which you ought to be doing anyway.
    To learn how to use Time Machine to back up your Mac read Mac Basics: Time Machine backs up your Mac.

  • BDC program for inbound delivery VL31

    Dear experts,
    I have created BDC program for inbound delivery with old T_CODE VL31,but it's very inefficient.Now I must change the program for the efficiency improve.
    Could you give any idea?
    Thanks in advance,
    collysun.

    I'm sorry, but it does not seem that there is a BAPI for this (looking at transaction BAPI and business object BUS2015).
    Have you perhaps looked at the new transaction VL31N? Are there any differences that may improve the input (limit the number of BDC steps)?
    Otherwise, take a look at the way you are entering data now. Make sure there are not too many dialog steps. i.e. Make sure you enter all the data you can on a single screen, only then process the next OKCODE. Also, look at the transaction again: Perhaps you can enter items in an overview screen instead of individual items. (I have no knowledge of your situation of course; these are just some general guidelines).
    Cheers,
    Martin

  • Any experience with coolbook?

    Does anyone have any experience with coolbook on the Macbook unibody? I am constantly running mine with one proc full out for hours on end and noticed that the CPU is at 80 C and the fans are at about 2.5k, so I figure if I could under volt a little I could get the CPU temp down a little. Pushing the fans up seems like a bad idea to me because that ages them faster.
    Also, the idea of being able to keep the processor's speed down when I am not plugged in sounds good to be because I am almost never doing anything that I care to do quickly.
    Also, does anyone have an experience with coolbook and apple care? i.e. getting heck from Apple b/c it was installed?

    Hi Paul Bailey,
    I just bought Coolbook for my 15' Macbook Pro Unibody (2.4ghz) yesterday. I recently asked your very question about Coolbook and warranty / AppleCare and the response I received from iVmichael was that it would be fine (thread visible here: http://discussions.apple.com/thread.jspa?messageID=10132068&#10132068 ). I read the Coolbook instructions yesterday and it said that Coolbook couldn't damage your processor. I did some experimenting with it and even putting the highest speed at the lowest voltage it would let me use on Coolbook only resulted in a kernel panic which just told me to turn the computer off, which I did. When I turned it back on, there were no problems at all so I don't think you'll run into problems with Coolbook or at the very least, that's been my experience.
    I played around with the voltages a bit however I found that for most things I do, it didn't make a noticeable difference. I mostly just use my Macbook Pro for web browsing and email, which are already very well handled at cool temperatures by Apple.
    I think the one thing to keep in mind is that even if by lowering the processor speed you're able to use less power through undervolting, you'll then end up with the processor working more time (eg. 2.4ghz processor will finish an encoding job much faster than a 1.8ghz processor) and that higher speed processor might actually end up being a better fit because once it finishes the demanding tasks, it'll underclock itself while the slower Coolbook-enabled processor is still working at most likely a higher frequency + voltage.
    From what I've read, everyone's Macbook Pro will have different results with Coolbook, as some of the Intel chips are willing to run (and be stable) at lower voltages than others, so some people will get more (or less) benefit than I experienced. I was able to get mine to run at 2.4ghz while using 1.0625 volts instead of the default of 1.1375 volts, so my CPU is running about 7% more power efficiently now. I had similar power efficiency improvements experimenting with different speed/voltage combinations. One thing to watch when lowering voltages is that some people have experienced a Core getting disabled (because not enough power is flowing to keep both enabled). If lowering the voltage causes this, you might find your Macbook Pro getting hotter instead of cooler, especially if doing anything that on one CPU causes it to constantly work at it's maximum performance.
    I'm not sure how much of a difference +7% CPU power efficiency would make in battery life, however mine seems to run about 2-3 degrees Celsius cooler which is nice, although it wasn't bothering me at the higher temperature. What I've heard mentioned in other threads on the Apple Discussion forums is that a cooler running Macbook Pro's battery should be able to go through more charging cycles than a warmer running one because of the effect heat has on the duration of a battery's life, so that's another definite plus.
    For battery life, you should get a pretty good extension (better than Coolbook) by lowering the Macbook Pro's LCD/LED brightness to the minimum or as low as you can tolerate if you aren't doing that already. I've heard that even not having the keys backlit when on battery power can add about 45 minutes to battery life as well. For the $10 Coolbook costs, it's worth it in my opinion.
    As for experimenting with fan speed, I definitely think it's a bad idea to have the fan running at max speed or ramping it up substantially over the default Apple settings. Like you said, it'll make the fan age faster and I've heard replacement fans aren't all that cheap (especially when you factor in labor). I really wouldn't know the answer to this, so I'm just speculating, however I personally would see fan failure resultant from smcfancontrol (or another fan speed program) as the Macbook Pro owner's fault and clearly not the fault of Apple if the fan were to fail because it's being used for extended periods of time at substantially higher speeds than it was intended to run at. I've seen some people say it wouldn't affect the warranty, however I think it's best that you contact AppleCare directly and ask just to be safe if this is something you're considering doing -- I haven't managed to come across an official answer from Apple.
    What I think is a good idea would be to increase the minimum fan speed a bit. My Macbook Pro fans usually run at around 2000rpm, so by increasing the fan speed to 2200rpm, I make it run a bit cooler while presumably not doing much to shorten fan lifespan. I may perhaps even be increasing fan lifespan as it now takes longer before the fans need to run at a higher rpm because they're doing a better job at keeping the Macbook Pro running within it's designed thermal envelope.

  • LabView/TestStand Developer - Herndon, VA

    Senior Production Test Engineer
    Job Description:
    ABOUT THE COMPANY iDirect is dedicated to providing next generation solutions for broadband IP networking via satellite networks. For more than 20 years, the VT iDirect organization has focused on meeting the economic and technology challenges across the satellite industry. Today, the product portfolio, branded under the name iDirect, sets new standards in performance and efficiency, making it possible to deliver voice, video and data connectivity anywhere in the world. As the leading innovators in the satellite communications industry, our diverse and talented team of Internet, satellite and telecommunications professionals continues to break new ground and create significant opportunities for network operators, for service providers and resellers, and for corporate networking professionals. If you are ready for the challenges, responsibilities, and rewards that come with working in a high-energy, fast-paced environment, then this is the job for you!
    ABOUT THE POSITION
    We are looking for a true leader in the area of production test development and implementation to significantly upgrade our capabilities and sophistication in an outsourced manufacturing environment. This is a unique opportunity to develop, implement and lead the vision for production test engineering. The Senior Production Test Engineer will be in integral part of the global manufacturing operations team and will interact with the Software and Design test functions. This is a great opportunity to join a growing company in a rapidly developing industry.
    RESPONSIBILITIES:
    Participate in all aspects of product testing within the manufacturing environment.
    Develop, debug and maintain LabView/TestStand code to support production test.
    Partner with Manufacturing Engineering, Quality and Reliability teams to monitor, measure and improve production yields. Develop and optimize the debugging approach incorporating a closed loop corrective action process for root cause identification and correction.
    Identify test process cost savings opportunities and work with other Supply Chain teams to identify and realize regular efficiency improvements and cost reductions.
    Lead projects to improve existing test systems and solve any issues that prevent delivery of professional testing capabilities.
    REQUIRED EXPERIENCE:
    The ideal candidate will come from a communications electronics environment with emphasis in wireless communication, and have a thorough understanding of current test strategies and approaches. In addition, the candidate should have the ability to develop and articulate a clear vision for effective and cost efficient production testing in outsourced manufacturing.
    BS in Engineering required. BSEE preferred, BSEET, computer science/engineering or equivalent experience will be considered.
    10+ years in test engineering or related areas in complex electronics manufacturing environment.
    5+ years of experience working at or with a Contract Manufacturer.
    Experience with LabView/TestStand, Boundary Scan, BIST, POST.
    Strong technical documentation skills including test requirements and test plan development.
    Solid understanding of software design and debug.
    DESIRED EXPERIENCE:
    Experience using databases such as SQL.
    Experience with a variety of programmable instruments; such as Spectrum Analyzers, power dividers, signal generators, logic analyzers, etc.
    Significant RF experience and wireless communications strongly preferred.
    Knowledge of application of test methods (ICT, AOI, and RF communications) desirable.
    Experience with National Instruments hardware a plus.
    Experience programming and interfacing ATE's in VB, C, C++, LabView, shell scripts, Perl, programming language skills for measurement, data acquisition and instrumentation control a plus.
    Equal Opportunity Employer M/F/D/V

    Hi,
    Kindly arrange an interview process.
    I have attached my resume
    Regards,
    Bharath Kumar

  • Worried about upgrading to OS X Yosemite

    Hi everyone.
    I have a Macbook Pro bought in 2011.
    In 2012/2013, I clicked "Upgrade" as the laptop prompted me to. However, the laptop crashed. I couldn't turn it on and had to get it repaired for $100+.
    That is why i have been reluctant to upgrade.
    However, I just bought an iPhone recently and it cannot sync with my Macbook iTunes.
    Seems like i have to upgrade soon.. However, i'm worried it will crash and i have to send it to repair again.
    I have alot of important documents in the laptop which i do not want to lose. (which i lost the previous time).
    Anyone able to suggest what hardware drive (?) i should buy to transfer my files to?
    Processor  2.3 GHz Intel Core i5
    Memory  4 GB 1333 MHz DDR3
    Graphics  Intel HD Graphics 3000 384 MB
    Software  OS X 10.8.5 (12F45)
    Just some details about my old macbook.
    Any advice would be much appreciated

    To learn how to use Time Machine to back up your Mac read Mac Basics: Time Machine backs up your Mac.
    Assuming that you are already in the habit of routinely backing up your system you can install Yosemite at no risk and at no cost. If you do not routinely back up your system, you should. Obtain an external USB, FireWire, or Thunderbolt hard disk drive for your Mac, then download and install Yosemite on it. You can choose to start your Mac from that disk or the internal one using Startup Manager (hold an option key while you start your Mac), and evaluate Yosemite at no risk whatsoever to your existing installation. Just be sure to designate the proper installation location for Yosemite when you get to that installation step.
    Running OS X from an external USB hard disk won't be as fast as the iMac's internal one, but it will be sufficient to draw conclusions regarding its suitability for your needs. All else being equal Yosemite should perform somewhat better than Mountain Lion due to various efficiency improvements.
    An external hard disk drive of adequate capacity can be purchased for well under $100 - much less than the cost of some previous OS X upgrades themselves. When you satisfy yourself that Yosemite works for you, then "clone" the external disk's contents to your internal one, and use the external disk for backup purposes - which you ought to be doing anyway.

Maybe you are looking for