diff options
author | Jeff Sharkey <jsharkey@android.com> | 2013-01-14 16:48:51 -0800 |
---|---|---|
committer | Jeff Sharkey <jsharkey@android.com> | 2013-02-13 17:40:49 -0800 |
commit | 9a2c2a6da90abbcc9a064c20e93ed885651f4ae1 (patch) | |
tree | 424065d447332bcbc2f95782abcedf897d9a22a2 /core/tests/benchmarks | |
parent | 336fcac31ddccc7e7a6773d03e7cb17967ebb898 (diff) |
Parse network stats using native code.
Switch to parsing detailed network stats with native code, which
is 71% faster than ProcFileReader.
Change-Id: I2525aaee74d227ce187ba3a74dd08a2b06514deb
Diffstat (limited to 'core/tests/benchmarks')
-rw-r--r-- | core/tests/benchmarks/src/com/android/internal/net/NetworkStatsFactoryBenchmark.java | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/core/tests/benchmarks/src/com/android/internal/net/NetworkStatsFactoryBenchmark.java b/core/tests/benchmarks/src/com/android/internal/net/NetworkStatsFactoryBenchmark.java new file mode 100644 index 000000000000..2174be5dc0a3 --- /dev/null +++ b/core/tests/benchmarks/src/com/android/internal/net/NetworkStatsFactoryBenchmark.java @@ -0,0 +1,54 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.internal.net; + +import android.net.NetworkStats; +import android.os.SystemClock; + +import com.google.caliper.SimpleBenchmark; + +import java.io.File; + +public class NetworkStatsFactoryBenchmark extends SimpleBenchmark { + private File mStats; + + // TODO: consider staging stats file with different number of rows + + @Override + protected void setUp() { + mStats = new File("/proc/net/xt_qtaguid/stats"); + } + + @Override + protected void tearDown() { + mStats = null; + } + + public void timeReadNetworkStatsDetailJava(int reps) throws Exception { + for (int i = 0; i < reps; i++) { + NetworkStatsFactory.javaReadNetworkStatsDetail(mStats, NetworkStats.UID_ALL); + } + } + + public void timeReadNetworkStatsDetailNative(int reps) { + for (int i = 0; i < reps; i++) { + final NetworkStats stats = new NetworkStats(SystemClock.elapsedRealtime(), 0); + NetworkStatsFactory.nativeReadNetworkStatsDetail( + stats, mStats.getAbsolutePath(), NetworkStats.UID_ALL); + } + } +} |