package com.discursive.cjcook.json;
import java.util.Date;
import net.sf.json.JSONObject;
public class JSONTiming {
public static void main(String[] arg) {
int size = 500000;
PositionData[] pArray = new PositionData[size];
long preCreate = (new Date()).getTime();
for (int i = 0; i < size; i++) {
PositionData pData = new PositionData();
pData.setVehicleId(1);
pData.setTimestamp((new Date()).getTime());
pData.setAltitude(123.0f);
pData.setLatitude(1.0f);
pData.setLongitude(1.0f);
pData.setSpeed(120);
pArray[i] = pData;
}
long postCreate = (new Date()).getTime();
float createTime = ((float) (postCreate - preCreate) / (float) size) * 1000 * 1000;
System.out.printf("Create One PositionData %.0f nanoseconds\n",
createTime);
String[] encodedArray = new String[size];
long preEncode = (new Date()).getTime();
for (int i = 0; i < size; i++) {
JSONObject obj = JSONObject.fromObject(pArray[i]);
String encoded = obj.toString();
encodedArray[i] = encoded;
}
long postEncode = (new Date()).getTime();
float encodeTime = ((float) (postEncode - preEncode) / (float) size) * 1000;
System.out.printf(
"Encode One PositionData to String %.0f microseconds\n",
encodeTime);
PositionData[] decodedArray = new PositionData[size];
long preDecode = (new Date()).getTime();
for (int i = 0; i < size; i++) {
JSONObject obj = JSONObject.fromObject( encodedArray[i] );
PositionData pData = (PositionData) JSONObject.toBean(obj,
PositionData.class);
decodedArray[i] = pData;
}
long postDecode = (new Date()).getTime();
float decodeTime = ((float) (postDecode - preDecode) / (float) size) * 1000;
System.out.printf("Decode One PositionData from String %.0f microseconds\n",
decodeTime);
}
}