I see about 10 times that cpu usage when loading data so that is not unusual. I imagine most of your cpu is api_cpu? Index creation seems to be the main culprit so turning off indexing on properties you don't need to query on is a good start.

On 19 Feb 2010, at 04:31, novarse wrote:

Hello,
I'm trying to get data from csv files into my datastore tables. My app
is showing cpu loadings of
30356ms 20023cpu_ms 11480api_cpu_ms from the dash board and I was
wondering if someone could see how I could improve this situation. I'm
pretty new to Java.


sample line from file:
-470,16/12/2008 0:00:00,125

this parses the file:
        private void processEvents(String fileName) {
                try {
                        previousLineNumber = 0;
                        i = 1;
                        file = new File(fileName);
                        CSVParser shredder = new CSVParser(new 
FileInputStream(file));
                        while ((t = shredder.nextValue()) != null) {
                                if (previousLineNumber != 
shredder.getLastLineNumber()) {
                                        if (previousLineNumber != 0) { // save 
event
                                                saveData(jdoEvent);
                                        }
                                        previousLineNumber = 
shredder.getLastLineNumber();
                                        i = 1;
                                } else
                                        i++;
                                switch (i) {
                                case 1:
                                        
jdoEvent.setPKeyEventID(Long.parseLong(t));
                                        break;
                                case 2:
                                        try {
                                                Date d = processDate(t);
                                                jdoEvent.setDate(d);
                                        } catch (ParseException e) {
                                                
System.out.println(e.getMessage());
                                        }
                                        break;
                                case 3:
                                        
jdoEvent.setFKeyRaceDescription(Long.parseLong(t));
                                        break;
                                }
                        }

                        if (previousLineNumber != 0) {
                                saveData(jdoEvent);
                        }
                } catch (Exception e) {
                        System.err.println(e.getMessage());
                }
        }


this saves the object:
        private <J> void saveData(J jdoObject) {
                PersistenceManager pm = PMF.get().getPersistenceManager();
                try {
                        pm.makePersistent(jdoObject);
                } finally {
                        pm.close();
                }
        }


this is my data object:

package com.myproj.client;

import java.util.Date;

import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;

import com.google.gwt.user.client.rpc.IsSerializable;

@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class JdoEvent implements IsSerializable {

        @PrimaryKey
        @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
        private Long pKeyEventID;

        @Persistent
        private Date date;

        @Persistent
        private Long fKeyRaceDescription;

        public JdoEvent() {

        }

        public void setDate(Date date) {
                this.date = date;
        }

        public Date getDate() {
                return date;
        }

        public void setPKeyEventID(Long pKeyEventID) {
                this.pKeyEventID = pKeyEventID;
        }

        public Long getPKeyEventID() {
                return pKeyEventID;
        }

        public void setFKeyRaceDescription(Long fKeyRaceDescription) {
                this.fKeyRaceDescription = fKeyRaceDescription;
        }

        public Long getFKeyRaceDescription() {
                return fKeyRaceDescription;
        }

        public String getValues() {
                return getPKeyEventID() + ";  " + getFKeyRaceDescription() + ";  
"
                                + getDate();
        }

}


Thank you

--
You received this message because you are subscribed to the Google Groups "Google App Engine for Java" group. To post to this group, send email to google-appengine-java@googlegroups.com . To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en .


--
You received this message because you are subscribed to the Google Groups "Google 
App Engine for Java" group.
To post to this group, send email to google-appengine-j...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to