什么是JNI内存泄露,基本的避免方法 :

http://www.ibm.com/developerworks/cn/java/j-lo-jnileak/

最近的课题中需要用到Spark,同组同学负责的算法用c++写的,数据库读取及调用算法用的是java,因此在整合的时候用到了jni。

因为任务需要并行,因此想到了用多线程实现。

程序在单机单线程的情况下运行没问题,当开两个线程的时候就出现了如下错误:

# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x7c930cce, pid=6224, tid=736
#
# JRE version: Java(TM) SE Runtime Environment (8.0_11-b12) (build 1.8.0_11-b12)
# Java VM: Java HotSpot(TM) Client VM (25.11-b03 mixed mode windows-x86 )
# Problematic frame:
# [thread 4240 also had an error]
C [ntdll.dll+0x10cce]
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# An error report file with more information is saved as:
# E:\eclipse4EE\workspace\MongoLoc\hs_err_pid6224.log
#
# If you would like to submit a bug report, please visit:
# http://bugreport.sun.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

java虚拟机崩溃。

JVM错误日志文件如下:

#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000e, pid=6240, tid=1404
#
# JRE version: Java(TM) SE Runtime Environment (8.0_11-b12) (build 1.8.0_11-b12)
# Java VM: Java HotSpot(TM) Client VM (25.11-b03 mixed mode windows-x86 )
# Problematic frame:
# C 0x0000000e
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# If you would like to submit a bug report, please visit:
# http://bugreport.sun.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
# --------------- T H R E A D --------------- Current thread (0x0b1f3400): JavaThread "Thread-0" [_thread_in_native, id=1404, stack(0x0b5d0000,0x0b620000)] siginfo: ExceptionCode=0xc0000005, reading address 0x0000000e Registers:
EAX=0x0000000e, EBX=0x003e8748, ECX=0x474e5543, EDX=0x432b2b00
ESP=0x0b61f4ec, EBP=0x0b61f548, ESI=0x0b61f528, EDI=0x0b1f3400
EIP=0x0000000e, EFLAGS=0x00010202 Top of Stack: (sp=0x0b61f4ec)
0x0b61f4ec: 66396350 00000001 00000001 432b2b00
0x0b61f4fc: 474e5543 003e8748 0b61f528 ffffffff
0x0b61f50c: 7c9301db 77bfc3c9 00000064 003e8768
0x0b61f51c: 0b66f6cc 0b1f3400 0b61f534 0bc450b8
0x0b61f52c: 0b66f80c 0bd486a0 66383940 664055d0
0x0b61f53c: 003e8748 0bc450b8 0b1f3400 0b61f568
0x0b61f54c: 6638588e 003e8748 00000000 00000000
0x0b61f55c: 77bfc42e 00000028 0bc450b8 0b61f588 Instructions: (pc=0x0000000e)
0xffffffee: Register to memory mapping: EAX=0x0000000e is an unknown value
EBX=0x003e8748 is an unknown value
ECX=0x474e5543 is an unknown value
EDX=0x432b2b00 is an unknown value
ESP=0x0b61f4ec is pointing into the stack for thread: 0x0b1f3400
EBP=0x0b61f548 is pointing into the stack for thread: 0x0b1f3400
ESI=0x0b61f528 is pointing into the stack for thread: 0x0b1f3400
EDI=0x0b1f3400 is a thread Stack: [0x0b5d0000,0x0b620000], sp=0x0b61f4ec, free space=317k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C 0x0000000e
C [SpeedEstimate.dll+0x588e]
C [SpeedEstimate.dll+0x4824]
C [SpeedEstimate.dll+0x261c8]
C [SpeedEstimate.dll+0x58ca6]
C [SpeedEstimate.dll+0x58dbc]
C [SpeedEstimate.dll+0x7468f]
C [SpeedEstimate.dll+0x228d0]
C [SpeedEstimate.dll+0x1b8c]
C [SpeedEstimate.dll+0x20b24]
C [SpeedEstimate.dll+0x2aa0]
C [SpeedEstimate.dll+0x2bf5]
j tong.mongo.loction.LinkedC.StreetEstimate(Ltong/mongo/defclass/MapLoc;Ltong/mongo/defclass/Car;)Ltong/mongo/defclass/StreetEstimateOutput;+0
j tong.mongo.loction.MdbThread2.run()V+1207
j java.lang.Thread.run()V+11
v ~StubRoutines::call_stub
V [jvm.dll+0x142295]
V [jvm.dll+0x2073ae]
V [jvm.dll+0x14232e]
V [jvm.dll+0x1424b6]
V [jvm.dll+0x142527]
V [jvm.dll+0xedebf]
V [jvm.dll+0x1646ac]
V [jvm.dll+0x164f3a]
V [jvm.dll+0x1a9316]
C [msvcr100.dll+0x5c556]
C [msvcr100.dll+0x5c600]
C [kernel32.dll+0xb729] Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j tong.mongo.loction.LinkedC.StreetEstimate(Ltong/mongo/defclass/MapLoc;Ltong/mongo/defclass/Car;)Ltong/mongo/defclass/StreetEstimateOutput;+0
j tong.mongo.loction.MdbThread2.run()V+1207
j java.lang.Thread.run()V+11
v ~StubRoutines::call_stub --------------- P R O C E S S --------------- Java Threads: ( => current thread )
0x0b6c1800 JavaThread "MongoCleaner1963207" daemon [_thread_blocked, id=6808, stack(0x0bb80000,0x0bbd0000)]
0x0b6b4800 JavaThread "MongoCleaner19725142" daemon [_thread_blocked, id=7236, stack(0x0bb30000,0x0bb80000)]
0x0b6ac400 JavaThread "cluster-2-127.0.0.1:27017" daemon [_thread_blocked, id=8120, stack(0x0bae0000,0x0bb30000)]
0x0b6ab800 JavaThread "cluster-1-127.0.0.1:27017" daemon [_thread_blocked, id=7252, stack(0x0ba90000,0x0bae0000)]
0x0b1f4800 JavaThread "Thread-1" [_thread_in_native, id=3284, stack(0x0b620000,0x0b670000)]
=>0x0b1f3400 JavaThread "Thread-0" [_thread_in_native, id=1404, stack(0x0b5d0000,0x0b620000)]
0x0b1a8800 JavaThread "Service Thread" daemon [_thread_blocked, id=7368, stack(0x0b440000,0x0b490000)]
0x0b174400 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, id=6272, stack(0x0b3f0000,0x0b440000)]
0x0b172800 JavaThread "Attach Listener" daemon [_thread_blocked, id=6572, stack(0x0b3a0000,0x0b3f0000)]
0x0b187400 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=7200, stack(0x0b350000,0x0b3a0000)]
0x02b4e400 JavaThread "Finalizer" daemon [_thread_blocked, id=6180, stack(0x0b100000,0x0b150000)]
0x02b48400 JavaThread "Reference Handler" daemon [_thread_blocked, id=7344, stack(0x0b0b0000,0x0b100000)]
0x0086a000 JavaThread "main" [_thread_in_native, id=5080, stack(0x00950000,0x009a0000)] Other Threads:
0x02b45000 VMThread [stack: 0x0b060000,0x0b0b0000] [id=6344]
0x0b1aa800 WatcherThread [stack: 0x0b490000,0x0b4e0000] [id=3048] VM state:not at safepoint (normal execution) VM Mutex/Monitor currently owned by a thread: None Heap:
def new generation total 58944K, used 22049K [0x02c00000, 0x06bf0000, 0x06c00000)
eden space 52416K, 42% used [0x02c00000, 0x041884a0, 0x05f30000)
from space 6528K, 0% used [0x05f30000, 0x05f30000, 0x06590000)
to space 6528K, 0% used [0x06590000, 0x06590000, 0x06bf0000)
tenured generation total 64K, used 0K [0x06c00000, 0x06c10000, 0x0ac00000)
the space 64K, 0% used [0x06c00000, 0x06c00000, 0x06c00200, 0x06c10000)
Metaspace used 4583K, capacity 4630K, committed 4736K, reserved 5504K Card table byte_map: [0x02b50000,0x02ba0000] byte_map_base: 0x02b3a000 Polling page: 0x009a0000 CodeCache: size=32768Kb used=1110Kb max_used=1110Kb free=31657Kb
bounds [0x009d0000, 0x00ae8000, 0x029d0000]
total_blobs=430 nmethods=266 adapters=96
compilation: enabled Compilation events (10 events):
Event: 4.095 Thread 0x0b174400 258 org.bson.io.OutputBuffer::writeInt (32 bytes)
Event: 4.095 Thread 0x0b174400 nmethod 258 0x00ae4608 code [0x00ae4730, 0x00ae4840]
Event: 4.102 Thread 0x0b174400 259 java.util.TreeMap::getFirstEntry (26 bytes)
Event: 4.102 Thread 0x0b174400 nmethod 259 0x00ae4908 code [0x00ae4a00, 0x00ae4aa0]
Event: 4.119 Thread 0x0b174400 261 tong.mongo.defclass.Line::<init> (5 bytes)
Event: 4.119 Thread 0x0b174400 nmethod 261 0x00ae4e08 code [0x00ae4f00, 0x00ae4f80]
Event: 4.137 Thread 0x0b174400 262 java.util.TreeMap$KeyIterator::next (8 bytes)
Event: 4.137 Thread 0x0b174400 nmethod 262 0x00ae4fc8 code [0x00ae50d0, 0x00ae516c]
Event: 4.148 Thread 0x0b174400 263 java.util.AbstractSet::<init> (5 bytes)
Event: 4.148 Thread 0x0b174400 nmethod 263 0x00ae5208 code [0x00ae5300, 0x00ae5380] GC Heap History (0 events):
No events Deoptimization events (0 events):
No events Internal exceptions (10 events):
Event: 4.007 Thread 0x0b1f4800 Exception <a 'java/security/PrivilegedActionException'> (0x0364b298) thrown at [D:\re\puppet\workspace\8-2-build-windows-i586-cygwin\jdk8u11\648\hotspot\src\share\vm\prims\jvm.cpp, line 1248]
Event: 4.008 Thread 0x0b1f3400 Exception <a 'java/security/PrivilegedActionException'> (0x03318b20) thrown at [D:\re\puppet\workspace\8-2-build-windows-i586-cygwin\jdk8u11\648\hotspot\src\share\vm\prims\jvm.cpp, line 1248]
Event: 4.010 Thread 0x0b1f3400 Exception <a 'java/security/PrivilegedActionException'> (0x0331bde0) thrown at [D:\re\puppet\workspace\8-2-build-windows-i586-cygwin\jdk8u11\648\hotspot\src\share\vm\prims\jvm.cpp, line 1248]
Event: 4.011 Thread 0x0b1f3400 Exception <a 'java/security/PrivilegedActionException'> (0x0331f908) thrown at [D:\re\puppet\workspace\8-2-build-windows-i586-cygwin\jdk8u11\648\hotspot\src\share\vm\prims\jvm.cpp, line 1248]
Event: 4.011 Thread 0x0b1f3400 Exception <a 'java/security/PrivilegedActionException'> (0x03322820) thrown at [D:\re\puppet\workspace\8-2-build-windows-i586-cygwin\jdk8u11\648\hotspot\src\share\vm\prims\jvm.cpp, line 1248]
Event: 4.019 Thread 0x0b1f3400 Exception <a 'java/security/PrivilegedActionException'> (0x03755ea8) thrown at [D:\re\puppet\workspace\8-2-build-windows-i586-cygwin\jdk8u11\648\hotspot\src\share\vm\prims\jvm.cpp, line 1248]
Event: 4.023 Thread 0x0b1f3400 Exception <a 'java/security/PrivilegedActionException'> (0x0375ec58) thrown at [D:\re\puppet\workspace\8-2-build-windows-i586-cygwin\jdk8u11\648\hotspot\src\share\vm\prims\jvm.cpp, line 1248]
Event: 4.066 Thread 0x0b1f4800 Exception <a 'java/security/PrivilegedActionException'> (0x03871610) thrown at [D:\re\puppet\workspace\8-2-build-windows-i586-cygwin\jdk8u11\648\hotspot\src\share\vm\prims\jvm.cpp, line 1248]
Event: 4.067 Thread 0x0b1f4800 Exception <a 'java/security/PrivilegedActionException'> (0x03875760) thrown at [D:\re\puppet\workspace\8-2-build-windows-i586-cygwin\jdk8u11\648\hotspot\src\share\vm\prims\jvm.cpp, line 1248]
Event: 4.131 Thread 0x0b1f3400 Exception <a 'java/security/PrivilegedActionException'> (0x03f5b5b8) thrown at [D:\re\puppet\workspace\8-2-build-windows-i586-cygwin\jdk8u11\648\hotspot\src\share\vm\prims\jvm.cpp, line 1248] Events (10 events):
Event: 4.023 loading class tong/mongo/defclass/Line
Event: 4.023 loading class tong/mongo/defclass/Line done
Event: 4.066 loading class com/mongodb/QueryResultIterator$OptionalFinalizer
Event: 4.066 loading class com/mongodb/QueryResultIterator$OptionalFinalizer done
Event: 4.067 loading class com/mongodb/ServerAddressSelector
Event: 4.067 loading class com/mongodb/ServerAddressSelector done
Event: 4.131 loading class tong/mongo/loction/LinkedC
Event: 4.131 loading class tong/mongo/loction/LinkedC done
Event: 4.132 loading class java/lang/ClassLoaderHelper
Event: 4.132 loading class java/lang/ClassLoaderHelper done Dynamic libraries:
0x00400000 - 0x00430000 C:\Program Files\Java\jdk8\bin\javaw.exe
0x7c920000 - 0x7c9b6000 C:\WINDOWS\system32\ntdll.dll
0x7c800000 - 0x7c91e000 C:\WINDOWS\system32\kernel32.dll
0x77da0000 - 0x77e49000 C:\WINDOWS\system32\ADVAPI32.dll
0x77e50000 - 0x77ee3000 C:\WINDOWS\system32\RPCRT4.dll
0x77fc0000 - 0x77fd1000 C:\WINDOWS\system32\Secur32.dll
0x77d10000 - 0x77da0000 C:\WINDOWS\system32\USER32.dll
0x77ef0000 - 0x77f39000 C:\WINDOWS\system32\GDI32.dll
0x77180000 - 0x77283000 C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.6028_x-ww_61e65202\COMCTL32.dll
0x77be0000 - 0x77c38000 C:\WINDOWS\system32\msvcrt.dll
0x77f40000 - 0x77fb6000 C:\WINDOWS\system32\SHLWAPI.dll
0x76300000 - 0x7631d000 C:\WINDOWS\system32\IMM32.DLL
0x62c20000 - 0x62c29000 C:\WINDOWS\system32\LPK.DLL
0x73fa0000 - 0x7400b000 C:\WINDOWS\system32\USP10.dll
0x78aa0000 - 0x78b5f000 C:\Program Files\Java\jdk8\jre\bin\msvcr100.dll
0x6d250000 - 0x6d5e7000 C:\Program Files\Java\jdk8\jre\bin\client\jvm.dll
0x71a40000 - 0x71a4b000 C:\WINDOWS\system32\WSOCK32.dll
0x71a20000 - 0x71a37000 C:\WINDOWS\system32\WS2_32.dll
0x71a10000 - 0x71a18000 C:\WINDOWS\system32\WS2HELP.dll
0x76b10000 - 0x76b3a000 C:\WINDOWS\system32\WINMM.dll
0x76bc0000 - 0x76bcb000 C:\WINDOWS\system32\PSAPI.DLL
0x6f650000 - 0x6f65c000 C:\Program Files\Java\jdk8\jre\bin\verify.dll
0x6dac0000 - 0x6dae1000 C:\Program Files\Java\jdk8\jre\bin\java.dll
0x6f6e0000 - 0x6f6f3000 C:\Program Files\Java\jdk8\jre\bin\zip.dll
0x7d590000 - 0x7dd84000 C:\WINDOWS\system32\SHELL32.dll
0x759d0000 - 0x75a7f000 C:\WINDOWS\system32\USERENV.dll
0x6ee40000 - 0x6ee54000 C:\Program Files\Java\jdk8\jre\bin\net.dll
0x10000000 - 0x10038000 C:\Documents and Settings\Administrator\Local Settings\Application Data\Tudou\FeisuTudou\ikutm.dll
0x76990000 - 0x76ace000 C:\WINDOWS\system32\ole32.dll
0x0b4e0000 - 0x0b51e000 C:\Documents and Settings\Administrator\Local Settings\Application Data\Tudou\FeisuTudou\ikutmco.dll
0x719c0000 - 0x719fe000 C:\WINDOWS\system32\mswsock.dll
0x60fd0000 - 0x61025000 C:\WINDOWS\system32\hnetcfg.dll
0x71a00000 - 0x71a08000 C:\WINDOWS\System32\wshtcpip.dll
0x76d30000 - 0x76d48000 C:\WINDOWS\system32\IPHLPAPI.DLL
0x76d10000 - 0x76d28000 C:\WINDOWS\system32\MPRAPI.dll
0x77c90000 - 0x77cc2000 C:\WINDOWS\system32\ACTIVEDS.dll
0x76de0000 - 0x76e05000 C:\WINDOWS\system32\adsldpc.dll
0x5fdd0000 - 0x5fe25000 C:\WINDOWS\system32\NETAPI32.dll
0x76f30000 - 0x76f5c000 C:\WINDOWS\system32\WLDAP32.dll
0x76af0000 - 0x76b01000 C:\WINDOWS\system32\ATL.DLL
0x770f0000 - 0x7717b000 C:\WINDOWS\system32\OLEAUT32.dll
0x76e50000 - 0x76e5e000 C:\WINDOWS\system32\rtutils.dll
0x71b70000 - 0x71b83000 C:\WINDOWS\system32\SAMLIB.dll
0x76060000 - 0x761b6000 C:\WINDOWS\system32\SETUPAPI.dll
0x6eda0000 - 0x6edaa000 C:\Program Files\Java\jdk8\jre\bin\management.dll
0x76ef0000 - 0x76f17000 C:\WINDOWS\system32\DNSAPI.dll
0x76f80000 - 0x76f88000 C:\WINDOWS\System32\winrnr.dll
0x76f90000 - 0x76f96000 C:\WINDOWS\system32\rasadhlp.dll
0x6ee60000 - 0x6ee6f000 C:\Program Files\Java\jdk8\jre\bin\nio.dll
0x66380000 - 0x664c4000 E:\eclipse4EE\workspace\MongoLoc\SpeedEstimate.dll
0x68d60000 - 0x68e01000 C:\WINDOWS\system32\dbghelp.dll
0x77bd0000 - 0x77bd8000 C:\WINDOWS\system32\VERSION.dll VM Arguments:
jvm_args: -Xms64m -Xmx128m -Xmn64m -Dfile.encoding=GBK
java_command: tong.mongo.loction.MdbFindThread2
java_class_path (initial): E:\eclipse4EE\workspace\MongoLoc\bin;C:\Program Files\Java\jdk1.7.0_71\lib\ext\mongo-java-driver-2.13.0-rc1.jar
Launcher Type: SUN_STANDARD Environment Variables:
JAVA_HOME=C:\Program Files\Java\jdk1.7.0_71
CLASSPATH=.;C:\Program Files\Java\jdk1.7.0_71\lib\dt.jar;C:\Program Files\Java\jdk1.7.0_71\lib\tools.jar;C:\Program Files\Java\jre6\lib\rt.jar;D:\apache-tomcat-6.0.43\lib\servlet-api.jar;
PATH=C:/Program Files/Java/jdk1.7.0_71/jre/bin/client;C:/Program Files/Java/jdk1.7.0_71/jre/bin;C:/Program Files/Java/jdk1.7.0_71/jre/lib/i386;C:\apache-maven-3.2.3\bin;C:\Program Files\Java\jdk1.7.0_71\jre\bin;C:\Program Files\Java\jdk8\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;E:\Matlab2013a\runtime\win32;E:\Matlab2013a\bin;E:\runtime\win32;E:\mysql 5.1\bin;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\;D:\vs2008\Common7\IDE\PrivateAssemblies\;C:\WINDOWS\system32\WindowsPowerShell\v1.0;E:\bin;c:\Program Files\Common Files\Ulead Systems\MPEG;C:\Program Files\Java\jdk1.7.0_71\bin;E:\Android\android-sdk-windows\tools;E:\Android\android-sdk-windows\platform-tools;C:\Program Files\scala\bin;E:\sbt\bin;D:\apache-tomcat-6.0.43\lib;D:\apache-tomcat-6.0.43\bin;E:\mongodb-win32-i386-2.0.7\bin;E:\eclipse4EE\eclipse;
USERNAME=Administrator
OS=Windows_NT
PROCESSOR_IDENTIFIER=x86 Family 6 Model 23 Stepping 6, GenuineIntel --------------- S Y S T E M --------------- OS: Windows XP Build 2600 Service Pack 3 CPU:total 2 (2 cores per cpu, 1 threads per core) family 6 model 23 stepping 6, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, tsc Memory: 4k page, physical 2085780k(366936k free), swap 2977508k(896652k free) vm_info: Java HotSpot(TM) Client VM (25.11-b03) for windows-x86 JRE (1.8.0_11-b12), built on Jun 16 2014 18:18:58 by "java_re" with MS VC++ 10.0 (VS2010) time: Tue Apr 21 20:34:24 2015
elapsed time: 4 seconds

问题分析:

查阅网上资料,可能原因是内存泄露。

原因是调用c++库的内容有错误。

逐步定位,经检查,发现是代码中初始化数据的时候出现了问题

在这个过程中学习了JNI,JVM结构以及内存管理

参考资料:

http://www.oschina.net/question/248406_120277?sort=default&p=2#answers

http://www.oschina.net/question/217574_162291

JNI错误记录--JNI程序调用本地库时JVM崩溃的更多相关文章

  1. 创建最简单的exe形式COM组件并在MFC程序调用

    来新公司学习接手新项目,拿到代码打开解决方案看到里面竟然有40几个工程,有点吃惊.具体看代码也有很多之前没见过的写法,上了几天火. 有件事就没太搞明白,按照文档的说法上层很多软件都要调用IO服务器,但 ...

  2. JNI调用问题(部分机型崩溃)

    1.今日测试发现在部分手机上游戏会崩溃,通过logcat日志发现是jni调用问题(我猜测) 错误日志中有如下语句: trying to work around app JNI bugs, but di ...

  3. JNI错误总结(转)

    源:JNI错误总结 最近公司里要用JNI技术,用java去调用已经写好的本地DLL库.之前自己也没接触过相关技术,其中花了大部分时间在调试改错上面,网上对于错误的解决方案也不多,现在项目接近完工,自己 ...

  4. Android JNI学习(四)——JNI的常用方法的中文API

    本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Nati ...

  5. JNI开发流程-JNI/NDK【转】

    本文转载自:http://wiki.jikexueyuan.com/project/jni-ndk-developer-guide/workflow.html 开发流程 JNI 全称是 Java Na ...

  6. java程序调用存储过程

    java程序调用存储过程       PL/SQL子程序,很多情况下是给应用程序来调用的,所有我们要掌握使用其他编程语言来调用我们写好的存储过程.下面我们介绍下使用java调用Oracle的存储过程. ...

  7. 在MVC或WEBAPI中记录每个Action的执行时间和记录下层方法调用时间

    刚才在博客园看了篇文章,http://www.cnblogs.com/cmt/p/csharp_regex_timeout.html  突然联想到以前遇到的问题,w3wp进程吃光CPU都挂起IIS进程 ...

  8. 优雅地记录Python程序日志2:模块组件化日志记录器

    本文摘自:https://zhuanlan.zhihu.com/p/32043593 本篇将会涉及: logging的各个模块化组件 构建一个组件化的日志器 logging的模块组件化 在上一篇文章中 ...

  9. 优雅地记录Python程序日志1:logging模块简介

    本文摘自:https://zhuanlan.zhihu.com/p/31893724 本篇涉及: logging模块的调用: 保存log日志为文件: 调整输入日志等级: 修改日志消息格式: 前言 在使 ...

随机推荐

  1. 转 Android - 文件操作

    一.资源文件的读取: 1) 从resource的raw中读取文件数据: String res = ""; try{ //得到资源中的Raw数据流 InputStream in = ...

  2. Gridview中修改某列的背景色

    Gridview中状态列的值是1,某列的背景是是绿色状态字段是:archivesStatus protected void gvInfo_RowDataBound(object sender, Gri ...

  3. 抽象类的基本概念------abstract

    抽象类的概念: 包含一个抽象方法的类就称为抽象类. 抽象方法:只声明但未实现的方法称为抽象方法,使用abstract关键字声明. 抽象类的定义及使用规则: abstract class A{ // 是 ...

  4. BZOJ2091: [Poi2010]The Minima Game

    2091: [Poi2010]The Minima Game Time Limit: 10 Sec  Memory Limit: 259 MBSubmit: 243  Solved: 163[Subm ...

  5. Linux企业级项目实践之网络爬虫(27)——多路IO复用

    与多线程和多进程相比,I/O多路复用的最大优势是系统开销小,系统不需要建立新的进程或者线程,也不必维护这些线程和进程. 主要应用: (1)客户程序需要同时处理交互式的输入和服务器之间的网络连接 (2) ...

  6. cocos2d-x 找不到资源文件问题

    问题描述: 在项目中引用到了图片,但是运行时报错: Unhandled exception at 0x001049DE in hello.exe: 0xC0000005: Access violati ...

  7. [LeetCode] 200. Number of Islands 解题思路

    Given a 2d grid map of '1's (land) and '0's (water), count the number of islands. An island is surro ...

  8. Stooge排序

    又叫臭皮匠排序... 在<算法导论>作为反例出现的漂亮但极其低效的排序算法. 基本思路是:只要数组长度大于3,先将头与尾排序,然后递归调用排序前三分之二,再递归调用排序后三分之二,最后再递 ...

  9. JScript_Test

    Hello SyntaxHighlighter function helloSyntaxHighlighter() { return "hi!"; } function hello ...

  10. Windows下oracle打补丁步骤

    1.Oracle官网下载对应的补丁文件(需要oracle支持账号才能下载) 2.设置ORACLE_HOME set oracle_home=F:\oracle\product\11.2.0\dbhom ...