package com.example.puree;
import com.cookpad.puree.Puree;
import com.example.puree.logs.BenchmarkLog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.ArrayList;
public class BenchmarkActivity extends AppCompatActivity {
ArrayList<SendLogs> tasks = new ArrayList<>();
ArrayAdapter<String> listAdapter;
ListView listView;
int count = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_benchmark);
listAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1);
listView = (ListView) findViewById(android.R.id.list);
listView.setAdapter(listAdapter);
for (int i = 0; i < 10; i++) {
tasks.add(new SendLogs());
}
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
System.gc();
tasks.remove(0).execute();
}
}, 100);
}
class SendLogs extends AsyncTask<Void, Void, Void> {
long t0;
@Override
protected Void doInBackground(Void... params) {
for (int i = 0; i < 100; i++) {
Puree.send(new BenchmarkLog("foo", "bar"));
}
Puree.flush();
return null;
}
@Override
protected void onPreExecute() {
t0 = System.currentTimeMillis();
}
@Override
protected void onPostExecute(Void aVoid) {
listAdapter.add(++count + ": " + (System.currentTimeMillis() - t0) + "ms");
if (!tasks.isEmpty()) {
tasks.remove(0).execute();
}
}
}
}