mirror of
https://github.com/alibaba/druid.git
synced 2023-03-04 19:17:16 +00:00
profile support
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
package com.alibaba.druid.bvt.support.profile;
|
||||
|
||||
import junit.framework.Assert;
|
||||
import junit.framework.TestCase;
|
||||
|
||||
import com.alibaba.druid.support.profile.ProfileEntryKey;
|
||||
import com.alibaba.druid.support.profile.ProfileEntryReqStat;
|
||||
import com.alibaba.druid.support.profile.Profiler;
|
||||
|
||||
public class ProfilerTest extends TestCase {
|
||||
|
||||
public void test_profile() throws Exception {
|
||||
for (int i = 0; i < 10; ++i) {
|
||||
req();
|
||||
}
|
||||
}
|
||||
|
||||
private void req() {
|
||||
Profiler.initLocal();
|
||||
|
||||
Profiler.enter("/", Profiler.PROFILE_TYPE_WEB);
|
||||
|
||||
for (int i = 0; i < 100; ++i) {
|
||||
execA();
|
||||
}
|
||||
|
||||
Assert.assertEquals(2, Profiler.getStatsMap().size());
|
||||
|
||||
{
|
||||
ProfileEntryReqStat stat = Profiler.getStatsMap().get(new ProfileEntryKey("/", "com.xxx.a(int)",
|
||||
Profiler.PROFILE_TYPE_SPRING));
|
||||
Assert.assertEquals(100, stat.getExecuteCount());
|
||||
Assert.assertEquals(100, stat.getExecuteTimeNanos());
|
||||
}
|
||||
|
||||
{
|
||||
ProfileEntryReqStat stat = Profiler.getStatsMap().get(new ProfileEntryKey("com.xxx.a(int)",
|
||||
"com.xxx.b(int)",
|
||||
Profiler.PROFILE_TYPE_SPRING));
|
||||
Assert.assertEquals(1000 * 100, stat.getExecuteCount());
|
||||
Assert.assertEquals(1000 * 100, stat.getExecuteTimeNanos());
|
||||
}
|
||||
|
||||
Profiler.release(1);
|
||||
|
||||
Assert.assertEquals(3, Profiler.getStatsMap().size());
|
||||
|
||||
Profiler.removeLocal();
|
||||
}
|
||||
|
||||
private void execA() {
|
||||
Profiler.enter("com.xxx.a(int)", Profiler.PROFILE_TYPE_SPRING);
|
||||
|
||||
for (int i = 0; i < 1000; ++i) {
|
||||
execB();
|
||||
}
|
||||
|
||||
Profiler.release(1);
|
||||
}
|
||||
|
||||
private void execB() {
|
||||
Profiler.enter("com.xxx.b(int)", Profiler.PROFILE_TYPE_SPRING);
|
||||
Profiler.release(1);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user