Source Code : ByteBuffer FloatBuffer demo
Java Is Open Source Programming Language You Can Download From Java and Java Libraries From http://www.oracle.com.
Click Here to download
We provide this code related to title for you to solve your developing problem easily. Libraries which is import in this program you can download from http://www.oracle.com.
Click Here or search from google with Libraries Name you get jar file related it
ByteBuffer FloatBuffer demo
//package com.ryanm.util;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.FloatBuffer;
import java.util.Random;
/**
* @author ryanm
*/
public class BufferTest {
private ByteBuffer bb;
private FloatBuffer floats;
private float[] data;
/**
* @param args
*/
public static void main(String[] args) {
new BufferTest().run();
}
private void run() {
final int size = 100000;
bb = ByteBuffer.allocateDirect(4 * size).order(ByteOrder.nativeOrder());
floats = bb.asFloatBuffer();
data = data(size);
System.out.println("# size single indexed batch");
int base = 0;
int e = size;
while (base + e > 100) {
test(base + e);
e /= 2;
}
}
private void test(int elements) {
int time = 1000;
System.out.print(elements + " ");
long kbps = singlePut(data, elements, floats, time);
System.out.print(kbps + " ");
kbps = singleIndexedPut(data, elements, floats, time);
System.out.print(kbps + " ");
kbps = bulkPut(data, elements, floats, time);
System.out.println(kbps + " ");
}
private long singlePut(float[] data, int elements, FloatBuffer target,
int testTime) {
long start = System.currentTimeMillis();
long elapsed = 0;
int reps = 0;
target.clear();
do {
for (int i = 0; i < elements; i++) {
target.put(data[i]);
}
target.flip();
reps++;
elapsed = System.currentTimeMillis() - start;
} while (elapsed < testTime);
long bytes = (long) elements * (long) reps * 4;
return bytes / elapsed / 1024;
}
private long singleIndexedPut(float[] data, int elements,
FloatBuffer target, int testTime) {
long start = System.currentTimeMillis();
long elapsed = 0;
int reps = 0;
target.clear();
do {
for (int i = 0; i < elements; i++) {
target.put(i, data[i]);
}
reps++;
elapsed = System.currentTimeMillis() - start;
} while (elapsed < testTime);
long bytes = (long) elements * (long) reps * 4;
return bytes / elapsed / 1024;
}
private long bulkPut(float[] data, int elements, FloatBuffer target,
int testTime) {
long start = System.currentTimeMillis();
long elapsed = 0;
int reps = 0;
target.clear();
do {
target.put(data, 0, elements);
target.flip();
reps++;
elapsed = System.currentTimeMillis() - start;
} while (elapsed < testTime);
long bytes = (long) elements * (long) reps * 4;
return bytes / elapsed / 1024;
}
private float[] data(int elements) {
float[] data = new float[elements];
Random rng = new Random();
for (int i = 0; i < data.length; i++) {
data[i] = 100 * rng.nextFloat();
}
return data;
}
}
Thank with us