package ser.hzcastblog;
import org.nustaq.serialization.simpleapi.DefaultCoder;
import java.util.Date;
import java.util.Random;
/**
* Created by ruedi on 24/12/14.
*/
public class RunTest {
static String[] products;
static int maxOrderLines = 5;
static Order createNewOrder(Random random, int id) {
Order order = new Order();
order.orderId = random.nextInt(id);
order.date = new Date();
int orderlineCount = random.nextInt(maxOrderLines);
for (int k = 0; k < orderlineCount; k++) {
OrderLine orderLine = new OrderLine();
orderLine.amount = random.nextInt(100);
orderLine.product = products[random.nextInt(products.length)];
order.orderLines.add(orderLine);
}
return order;
}
public static void main( String arg[] ) {
Random r = new Random(1000);
products = new String[100];
for (int k = 0; k < 100; k++) {
products[k] = "product-" + k;
}
Order orders[] = new Order[10000];
for (int i = 0; i < orders.length; i++) {
orders[i] = createNewOrder(r,i+1);
}
int curOrder = 0;
DefaultCoder coder = new DefaultCoder(true,Order.class,OrderLine.class);
// DefaultCoder coder = new DefaultCoder(false,Order.class,OrderLine.class); faster, no ref sharing
byte buf[] = new byte[10000]; // reuse
// write once for decode test only
coder.toByteArray(orders[0], buf, 0, buf.length);
int count = 0;
while( true ) {
long tim = System.currentTimeMillis();
for ( int i = 0; i < 1_000_0000; i++ ) {
coder.toByteArray(orders[count], buf, 0, buf.length);
// Object deser = coder.toObject(buf);
}
System.out.println("time: "+(System.currentTimeMillis()-tim) );
}
}
}