±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚcsdn£¬±¾ÎÄÊ×ÏȽéÉÜÁ˸ºÔزâÊÔ¡¢»ùÓÚAPM¹¤¾ßµÄÓ¦ÓóÌÐòºÍ·þÎñÆ÷¼à¿Ø£¬Ëæºó½éÉÜÁ˱àд¸ßÐÔÄÜJava´úÂëµÄһЩ×î¼Ñʵ¼ù¡£×îºóÑо¿ÁËJVMÌØ¶¨µÄµ÷Óż¼ÇÉ¡¢Êý¾Ý¿â¶ËµÄÓÅ»¯ºÍ¼Ü¹¹·½ÃæµÄµ÷Õû¡£ |
|
½éÉÜ
ÔÚÕâÆªÎÄÕÂÖУ¬ÎÒÃǽ«ÌÖÂÛ¼¸¸öÓÐÖúÓÚÌáÉýJavaÓ¦ÓóÌÐòÐÔÄܵķ½·¨¡£ÎÒÃÇÊ×ÏȽ«½éÉÜÈçºÎ¶¨Òå¿É¶ÈÁ¿µÄÐÔÄÜÖ¸±ê£¬È»ºó¿´¿´ÓÐÄÄЩ¹¤¾ß¿ÉÒÔÓÃÀ´¶ÈÁ¿ºÍ¼à¿ØÓ¦ÓóÌÐòÐÔÄÜ£¬ÒÔ¼°È·¶¨ÐÔÄÜÆ¿¾±¡£
ÎÒÃÇ»¹½«¿´µ½Ò»Ð©³£¼ûµÄJava´úÂëÓÅ»¯·½·¨ÒÔ¼°×î¼Ñ±àÂëʵ¼ù¡£×îºó£¬ÎÒÃǽ«¿´¿´ÓÃÓÚÌáÉýJavaÓ¦ÓóÌÐòÐÔÄܵÄJVMµ÷Óż¼Çɺͼܹ¹µ÷Õû¡£
Çë×¢Ò⣬ÐÔÄÜÓÅ»¯ÊÇÒ»¸öºÜ¿í·ºµÄ»°Ì⣬¶ø±¾ÎÄÖ»ÊǶÔJVM̽Ë÷µÄÒ»¸öÆðµã¡£
ÐÔÄÜÖ¸±ê
ÔÚ¿ªÊ¼ÓÅ»¯Ó¦ÓóÌÐòµÄÐÔÄÜ֮ǰ£¬ÎÒÃÇÐèÒªÀí½âÖîÈç¿ÉÀ©Õ¹ÐÔ¡¢ÐÔÄÜ¡¢¿ÉÓÃÐԵȷ½ÃæµÄ·Ç¹¦ÄÜÐèÇó¡£
ÒÔÏÂÊǵäÐÍWebÓ¦ÓóÌÐò³£ÓõÄһЩÐÔÄÜÖ¸±ê£º
1.Ó¦ÓóÌÐòƽ¾ùÏìӦʱ¼ä
2.ϵͳ±ØÐëÖ§³ÖµÄƽ¾ù²¢·¢Óû§Êý
3.ÔÚ¸ºÔظ߷åÆÚ¼ä£¬Ô¤ÆÚµÄÿÃëÇëÇóÊý
ÕâЩָ±ê¿ÉÒÔͨ¹ýʹÓöàÖÖ¼àÊÓ¹¤¾ß¼à²âµ½£¬ËüÃǶԷÖÎöÐÔÄÜÆ¿¾±ºÍÐÔÄܵ÷ÓÅÓÐ×ŷdz£´óµÄ×÷Óá£
ʾÀýÓ¦ÓóÌÐò
ÎÒÃǽ«Ê¹ÓÃÒ»¸ö¼òµ¥µÄSpring Boot WebÓ¦ÓóÌÐò×÷ΪʾÀý£¬ÔÚÕâÆªÎÄÕÂÖÐÓÐÏà¹ØµÄ½éÉÜ¡£Õâ¸öÓ¦ÓóÌÐò¿ÉÓÃÓÚ¹ÜÀíÔ±¹¤ÁÐ±í£¬²¢¶ÔÍ⹫¿ªÁËÌí¼ÓºÍ¼ìË÷Ô±¹¤µÄREST
API¡£
ÎÒÃǽ«Ê¹ÓÃÕâ¸ö³ÌÐò×÷Ϊ²Î¿¼À´ÔËÐиºÔزâÊÔ£¬²¢ÔÚ½ÓÏÂÀ´µÄÕ½ÚÖÐ¼à¿Ø¸÷ÖÖÓ¦ÓÃÖ¸±ê¡£
ÕÒ³öÐÔÄÜÆ¿¾±
¸ºÔزâÊÔ¹¤¾ßºÍÓ¦ÓóÌÐòÐÔÄܹÜÀí£¨APM£©½â¾ö·½°¸³£ÓÃÓÚ¸ú×ÙºÍÓÅ»¯JavaÓ¦ÓóÌÐòµÄÐÔÄÜ¡£ÒªÕÒ³öÐÔÄÜÆ¿¾±£¬Ö÷Òª¾ÍÊǶԸ÷ÖÖÓ¦Óó¡¾°½øÐиºÔزâÊÔ£¬²¢Í¬Ê±Ê¹ÓÃAPM¹¤¾ß¶ÔCPU¡¢IO¡¢¶ÑµÄʹÓÃÇé¿ö½øÐÐ¼à¿ØµÈµÈ¡£
GatlingÊǽøÐиºÔزâÊÔ×îºÃµÄ¹¤¾ßÖ®Ò»£¬ËüÌṩÁ˶ÔHTTPÐÒéµÄÖ§³Ö£¬ÊÇHTTP·þÎñÆ÷¸ºÔزâÊԵľø¼ÑÑ¡Ôñ¡£
StackifyµÄRetraceÊÇÒ»¸ö³ÉÊìµÄAPM½â¾ö·½°¸¡£ËüµÄ¹¦Äܷܺḻ£¬¶ÔÈ·¶¨Ó¦ÓóÌÐòµÄÐÔÄÜ»ùÏߺÜÓаïÖú¡£
RetraceµÄ¹Ø¼ü×é¼þÖ®Ò»ÊÇËüµÄ´úÂë·ÖÎö¹¦ÄÜ£¬ËüÄܹ»ÔÚ²»¼õÂýÓ¦ÓóÌÐòµÄÇé¿öÏÂÊÕ¼¯ÔËÐÐʱÐÅÏ¢¡£
Retrace»¹ÌṩÁ˼àÊÓ»ùÓÚJVMÓ¦ÓóÌÐòµÄÄÚ´æ¡¢Ï̺߳ÍÀàµÄС²¿¼þ¡£³ýÁËÓ¦ÓóÌÐò±¾ÉíµÄÖ¸±êÖ®Í⣬Ëü»¹Ö§³Ö¼àÊÓÍйÜÓ¦ÓóÌÐòµÄ·þÎñÆ÷µÄCPUºÍIOʹÓÃÇé¿ö¡£
Òò´Ë£¬ÏñRetraceÕâÑù¹¦ÄÜÈ«ÃæµÄ¼à¿Ø¹¤¾ßÊǽâËøÓ¦ÓóÌÐòÐÔÄÜDZÁ¦µÄµÚÒ»²½¡£¶øµÚ¶þ²½ÔòÊÇÔÚÄãµÄϵͳÉÏÖØÏÖÕæÊµÊ¹Óó¡¾°ºÍ¸ºÔØ¡£
˵ÆðÀ´ÈÝÒ×£¬×öÆðÀ´ÄÑ£¬¶øÇÒÁ˽âÓ¦ÓóÌÐòµ±Ç°µÄÐÔÄÜÒ²·Ç³£ÖØÒª¡£Õâ¾ÍÊÇÎÒÃǽÓÏÂÀ´Òª¹Ø×¢µÄÎÊÌâ¡£
Gatling¸ºÔزâÊÔ
GatlingµÄÄ£Äâ²âÊԽű¾ÊÇÓÃScala±àдµÄ£¬µ«¸Ã¹¤¾ß»¹¸½´øÁËÒ»¸ö·Ç³£ÓÐÓõÄͼÐνçÃæ£¬¿ÉÓÃÓڼǼ¾ßÌåµÄ³¡¾°£¬²¢Éú³ÉScala½Å±¾¡£
ÔÚÔËÐÐÄ£Äâ½Å±¾Ö®ºó£¬Gatling»áÉú³ÉÒ»·Ý·Ç³£ÓÐÓõġ¢¿ÉÓÃÓÚ·ÖÎöµÄHTML±¨¸æ¡£
¶¨Ò峡¾°
ÔÚÆô¶¯¼Ç¼Æ÷֮ǰ£¬ÎÒÃÇÐèÒª¶¨ÒåÒ»¸ö³¡¾°£¬±íʾÓû§ÔÚä¯ÀÀWebÓ¦ÓÃʱ·¢ÉúµÄÊÂÇé¡£
ÔÚÎÒÃǵÄÕâ¸öÀý×ÓÖУ¬¾ßÌåµÄ³¡¾°½«ÊÇ¡°Æô¶¯200¸öÓû§£¬Ã¿¸öÓû§·¢³öÒ»Íò¸öÇëÇ󡣡±
ÅäÖüǼÆ÷
¸ù¾Ý¡°GatlingµÄµÚÒ»²½¡±ËùÊö£¬ÓÃÏÂÃæµÄ´úÂë´´½¨Ò»¸öÃûΪEmployeeSimulationµÄscalaÎļþ£º
class EmployeeSimulation
extends Simulation {
val scn = scenario("FetchEmployees").repeat(10000)
{
exec(
http("GetEmployees-API")
.get("http://localhost:8080/employees")
.check(status.is(200))
)
}
setUp(scn.users(200).ramp(100))
} |
ÔËÐиºÔزâÊÔ
ÒªÖ´ÐиºÔزâÊÔ£¬ÇëÔËÐÐÒÔÏÂÃüÁ
$GATLING_HOME/bin/gatling.sh-sbasic.EmployeeSimulation |
¶ÔÓ¦ÓóÌÐòµÄAPI½øÐиºÔزâÊÔÓÐÖúÓÚ·¢ÏÖ¼°Æäϸ΢µÄ²¢ÇÒÄÑÒÔ·¢ÏֵĴíÎó£¬ÈçÊý¾Ý¿âÁ¬½ÓºÄ¾¡¡¢¸ß¸ºÔØÇé¿öϵÄÇëÇó³¬Ê±¡¢ÒòΪÄÚ´æÐ¹Â©¶øµ¼Ö¶ѵĸßʹÓÃÂʵȵȡ£
¼à¿ØÓ¦ÓóÌÐò
ҪʹÓÃRetrace½øÐÐJavaÓ¦ÓóÌÐòµÄ¿ª·¢£¬Ê×ÏÈÐèÒªÔÚStackifyÉÏÉêÇëÃâ·ÑÊÔÓÃÕ˺š£È»ºó£¬½«ÎÒÃÇ×Ô¼ºµÄSpring
BootÓ¦ÓóÌÐòÅäÖÃΪLinux·þÎñ¡£ÎÒÃÇ»¹ÐèÒªÔÚÍйÜÓ¦ÓóÌÐòµÄ·þÎñÆ÷Éϰ²×°Retrace´úÀí£¬°´ÕÕÕâÆªÎÄÕÂËùÊöµÄ²Ù×÷¼´¿É¡£
Retrace´úÀíºÍÒª¼à¿ØµÄJavaÓ¦ÓóÌÐòÆô¶¯ºó£¬ÎÒÃǾͿÉÒÔµ½RetraceÒDZí°åÉϵ¥»÷AddApp°´Å¥Ìí¼ÓÓ¦ÓÃÁË¡£Ìí¼ÓÓ¦ÓÃÍê³ÉÖ®ºó£¬Retrace½«¿ªÊ¼¼à¿ØÓ¦ÓóÌÐòÁË¡£
ÕÒµ½×îÂýµÄÄǸöµã
Retrace»á×Ô¶¯¼à¿ØÓ¦ÓóÌÐò£¬²¢¸ú×ÙÊýÊ®ÖÖ³£¼û¿ò¼Ü¼°ÆäÒÀÀµ¹ØÏµµÄʹÓÃÇé¿ö£¬°üÀ¨SQL¡¢MongoDB¡¢Redis¡¢ElasticsearchµÈµÈ¡£RetraceÄܰïÖúÎÒÃÇ¿ìËÙÈ·¶¨Ó¦ÓóÌÐòΪʲô»á³öÏÖÈçÏÂÐÔÄÜÎÊÌ⣺
ij¸öSQLÓï¾äÊÇ·ñ»áÍÏÂýϵͳµÄËÙ¶È£¿
RedisͻȻ±äÂýÁËÂð£¿
ÌØ¶¨µÄHTTP Web·þÎñå´ÁË£¬»¹ÊDZäÂýÁË£¿
ÀýÈ磬ÏÂÃæµÄͼÐÎչʾÁËÔÚÒ»¶Î¸ø¶¨µÄʱ¼äÄÚËÙ¶È×îÂýµÄ×é¼þ¡£

´úÂë¼¶±ðµÄÓÅ»¯
¸ºÔزâÊÔºÍÓ¦ÓóÌÐò¼à¿Ø¶ÔÓÚÈ·¶¨Ó¦ÓóÌÐòµÄһЩ¹Ø¼üÐÔÄÜÆ¿¾±·Ç³£ÓÐÓᣵ«Í¬Ê±£¬ÎÒÃÇÐèÒª×ñÑÁ¼ºÃµÄ±àÂëϰ¹ß£¬ÒÔ±ÜÃâÔÚ¶ÔÓ¦ÓóÌÐò½øÐÐ¼à¿ØµÄʱºò³öÏÖ¹ý¶àµÄÐÔÄÜÎÊÌâ¡£
ÔÚÏÂÒ»Õ½ÚÖУ¬ÎÒÃǽ«À´¿´Ò»Ð©×î¼Ñʵ¼ù¡£
ʹÓÃStringBuilderÀ´Á¬½Ó×Ö·û´®
×Ö·û´®Á¬½ÓÊÇÒ»¸ö·Ç³£³£¼ûµÄ²Ù×÷£¬Ò²ÊÇÒ»¸öµÍЧÂʵIJÙ×÷¡£¼òµ¥µØËµ£¬Ê¹ÓÃ+=À´×·¼Ó×Ö·û´®µÄÎÊÌâÔÚÓÚÿ´Î²Ù×÷¶¼»á·ÖÅäеÄString¡£
ÏÂÃæÕâ¸öÀý×ÓÊÇÒ»¸ö¼ò»¯Á˵ĵ«È´ºÜµäÐ͵ÄÑ»·¡£Ç°ÃæÊ¹ÓÃÁËÔʼµÄÁ¬½Ó·½Ê½£¬ºóÃæÊ¹ÓÃÁ˹¹½¨Æ÷£º
public String
stringAppendLoop() {
String s = "";
for (int i = 0; i < 10000; i++) {
if (s.length() > 0)
s += ", ";
s += "bar";
}
return s;
}
public String stringAppendBuilderLoop() {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 10000; i++) {
if (sb.length() > 0)
sb.append(", ");
sb.append("bar");
}
return sb.toString();
} |
ÉÏÃæ´úÂëÖÐʹÓõÄStringBuilder¶ÔÐÔÄܵÄÌáÉý·Ç³£ÓÐЧ¡£Çë×¢Ò⣬ÏÖ´úµÄJVM»áÔÚ±àÒë»òÕßÔËÐÐʱ¶Ô×Ö·û´®²Ù×÷½øÐÐÓÅ»¯¡£
±ÜÃâµÝ¹é
µ¼Ö³öÏÖStackOverFlowError´íÎóµÄµÝ¹é´úÂëÂß¼ÊÇJavaÓ¦ÓóÌÐòÖÐÁíÒ»ÖÖ³£¼ûµÄÎÊÌâ¡£Èç¹ûÎÞ·¨È¥µôµÝ¹éÂß¼£¬ÄÇôβµÝ¹é×÷ÎªÌæ´ú·½°¸½«»á¸üºÃ¡£
ÎÒÃÇÀ´¿´Ò»¸öÍ·µÝ¹éµÄÀý×Ó£º
public int factorial(int
n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
} |
ÏÖÔÚÎÒÃǰÑËüÖØÐ´ÎªÎ²µÝ¹é£º
private int factorial(int
n, int accum) {
if (n == 0) {
return accum;
} else {
return factorial(n - 1, accum * n);
}
}
public int factorial(int n) {
return factorial(n, 1);
} |
ÆäËûJVMÓïÑÔ£¨ÈçScala£©ÒѾÔÚ±àÒëÆ÷¼¶Ö§³ÖβµÝ¹é´úÂëµÄÓÅ»¯£¬µ±È»£¬¶ÔÓÚÕâÖÖÓÅ»¯Ä¿Ç°Ò²´æÔÚ×ÅһЩÕùÒé¡£
½÷É÷ʹÓÃÕýÔò±í´ïʽ
ÕýÔò±í´ïʽÔںܶೡ¾°Öж¼·Ç³£ÓÐÓ㬵«ËüÃÇÍùÍù¾ßÓзdz£¸ßµÄÐÔÄܳɱ¾¡£Á˽â¸÷ÖÖʹÓÃÕýÔò±í´ïʽµÄJDK×Ö·û´®·½·¨ºÜÖØÒª£¬ÀýÈçString.replaceAll()¡¢String.split()¡£
Èç¹ûÄã²»µÃ²»ÔÚ¼ÆËãÃܼ¯µÄ´úÂë¶ÎÖÐʹÓÃÕýÔò±í´ïʽ£¬ÄÇôÐèÒª»º´æPatternµÄÒýÓöø±ÜÃâÖØ¸´±àÒ룺
static final
Pattern HEAVY_REGEX = Pattern.compile("(((X)*Y)*Z)*");
|
ʹÓÃһЩÁ÷ÐеĿ⣬±ÈÈçApache Commons LangÒ²ÊÇÒ»¸öºÜºÃµÄÑ¡Ôñ£¬ÌرðÊÇÔÚ×Ö·û´®µÄ²Ù×÷·½Ãæ¡£
±ÜÃâ´´½¨ºÍÏú»Ù¹ý¶àµÄÏß³Ì
Ï̵߳Ĵ´½¨ºÍ´¦ÖÃÊÇJVM³öÏÖÐÔÄÜÎÊÌâµÄ³£¼ûÔÒò£¬ÒòΪÏ̶߳ÔÏóµÄ´´½¨ºÍÏú»ÙÏà¶Ô½ÏÖØ¡£
Èç¹ûÓ¦ÓóÌÐòʹÓÃÁË´óÁ¿µÄỊ̈߳¬ÄÇôʹÓÃÏ̳߳ػá¸ü¼ÓÓÐÓã¬ÒòΪÏ̳߳ØÔÊÐíÕâЩ°º¹óµÄ¶ÔÏó±»ÖØÓá£
Ϊ´Ë£¬JavaµÄExecutorServiceÊÇÏ̳߳صĻù´¡£¬ËüÌṩÁËÒ»¸ö¸ß¼¶APIÀ´¶¨ÒåÏ̳߳صÄÓïÒå²¢ÓëÖ®½øÐн»»¥¡£
Java 7ÖеÄFork/Join¿ò¼ÜÒ²ÖµµÃÌáһϣ¬ÒòΪËüÌṩÁËһЩ¹¤¾ßÀ´³¢ÊÔʹÓÃËùÓпÉÓõĴ¦ÀíÆ÷ºËÐÄÒÔ°ïÖú¼ÓËÙ²¢Ðд¦Àí¡£ÎªÁËÌá¸ß²¢ÐÐÖ´ÐÐЧÂÊ£¬¿ò¼ÜʹÓÃÁËÒ»¸öÃûΪForkJoinPoolµÄÏ̳߳ØÀ´¹ÜÀí¹¤×÷Ï̡߳£
JVMµ÷ÓÅ
¶Ñ´óСµÄµ÷ÓÅ
ΪÉú²úϵͳȷ¶¨ºÏÊʵÄJVM¶Ñ´óС²¢²»ÊÇÒ»¼þ¼òµ¥µÄÊÂÇé¡£Òª×öµÄµÚÒ»²½ÊǻشðÒÔÏÂÎÊÌâÒÔÔ¤²âÄÚ´æÐèÇó£º
¼Æ»®Òª°Ñ¶àÉÙ¸ö²»Í¬µÄÓ¦ÓóÌÐò²¿Êðµ½µ¥¸öJVM½ø³ÌÖУ¬ÀýÈçEARÎļþ¡¢WARÎļþ¡¢jarÎļþµÄÊýÁ¿ÊǶàÉÙ£¿
ÔÚÔËÐÐʱ¿ÉÄÜ»á¼ÓÔØ¶àÉÙ¸öJavaÀ࣬°üÀ¨µÚÈý·½APIµÄÀࣿ
¹À¼ÆÄڴ滺´æËùÐèµÄ¿Õ¼ä£¬ÀýÈ磬ÓÉÓ¦ÓóÌÐò£¨ºÍµÚÈý·½API£©¼ÓÔØµÄÄÚ²¿»º´æÊý¾Ý½á¹¹£¬±ÈÈç´ÓÊý¾Ý¿â»º´æµÄÊý¾Ý¡¢´ÓÎļþÖжÁÈ¡µÄÊý¾ÝµÈµÈ¡£
¹À¼ÆÓ¦ÓóÌÐò½«´´½¨µÄÏß³ÌÊý¡£
Èç¹ûûÓо¹ýÕæÊµ³¡¾°µÄ²âÊÔ£¬ÕâЩÊý×ÖºÜÄѹÀ¼Æ¡£
Òª»ñµÃÓйØÓ¦ÓóÌÐòÐèÇóµÄ×îºÃ×î¿É¿¿µÄ·½·¨ÊǶÔÓ¦ÓóÌÐòÖ´ÐÐʵ¼ÊµÄ¸ºÔزâÊÔ£¬²¢ÔÚÔËÐÐʱ¸ú×ÙÐÔÄÜÖ¸±ê¡£ÎÒÃÇ֮ǰÌÖÂ۵ĻùÓÚGatlingµÄ²âÊÔ¾ÍÊÇÒ»¸öºÜºÃµÄ·½·¨¡£
Ñ¡ÔñºÏÊʵÄÀ¬»øÊÕ¼¯Æ÷
Stop-the-world£¨STW£©À¬»øÊÕ¼¯µÄÖÜÆÚÊÇÓ°Ïì´ó¶àÊýÃæÏò¿Í»§¶ËÓ¦ÓóÌÐòÏìÓ¦ºÍÕûÌåJavaÐÔÄܵĴóÎÊÌâ¡£µ«ÊÇ£¬Ä¿Ç°µÄÀ¬»øÊÕ¼¯Æ÷´ó¶à½â¾öÁËÕâ¸öÎÊÌ⣬²¢ÇÒͨ¹ýÊʵ±µÄÓÅ»¯ºÍ´óСµÄµ÷Õû£¬Äܹ»Ïû³ý¶ÔÊÕ¼¯ÖÜÆÚµÄ¸ÐÖª¡£
·ÖÎöÆ÷¡¢¶Ñת´¢ºÍÏêϸµÄGCÈÕÖ¾¼Ç¼¹¤¾ß¶Ô´ËÓÐÒ»¶¨µÄ°ïÖú×÷Óá£ÔÙÒ»´Î×¢Ò⣬ÕâЩ¶¼ÐèÒªÔÚÕæÊµ³¡¾°µÄ¸ºÔØÄ£Ê½Ï½øÐÐ¼à¿Ø¡£
Óйز»Í¬À¬»øÊÕ¼¯Æ÷µÄ¸ü¶àÐÅÏ¢£¬Çë²é¿´Õâ¸öÖ¸ÄÏ¡£
JDBCÐÔÄÜ
¹ØÏµÐÍÊý¾Ý¿âÊÇJavaÓ¦ÓóÌÐòÖÐÁíÒ»¸ö³£¼ûµÄÐÔÄÜÎÊÌ⡣ΪÁË»ñµÃÍêÕûÇëÇóµÄÏìӦʱ¼ä£¬ÎÒÃǺÜ×ÔÈ»µØ±ØÐë²é¿´Ó¦ÓóÌÐòµÄÿһ²ã£¬²¢Ë¼¿¼ÈçºÎÈôúÂëÓëµ×²ãSQL
DB½øÐн»»¥¡£
Á¬½Ó³Ø
ÈÃÎÒÃÇ´ÓÖÚËùÖÜÖªµÄÊÂʵ¿ªÊ¼£¬¼´Êý¾Ý¿âÁ¬½ÓÊǰº¹óµÄ¡£ Á¬½Ó³Ø»úÖÆÊǽâ¾öÕâ¸öÎÊÌâ·Ç³£ÖØÒªµÄµÚÒ»²½¡£
ÕâÀィÒéʹÓÃHikariCP JDBC£¬ÕâÊÇÒ»¸ö·Ç³£ÇáÁ¿¼¶£¨´óÔ¼130Kb£©²¢ÇÒËٶȼ«¿ìµÄJDBCÁ¬½Ó³Ø¿ò¼Ü¡£
JDBCÅú´¦Àí
³Ö¾Ã»¯´¦ÀíÓ¦¾¡¿ÉÄܵØÖ´ÐÐÅúÁ¿²Ù×÷¡£ JDBCÅú´¦ÀíÔÊÐíÎÒÃÇÔÚµ¥´ÎÊý¾Ý¿â½»»¥Öз¢ËͶà¸öSQLÓï¾ä¡£
ÕâÑù£¬ÎÞÂÛÊÇÔÚÇý¶¯¶Ë»¹ÊÇÔÚÊý¾Ý¿â¶Ë£¬ÐÔÄܶ¼¿ÉÄܵõ½ÏÔÖøµØÌáÉý¡£ * PreparedStatement*ÊÇÒ»¸ö·Ç³£°ôµÄµÄÅú´¦ÀíÃüÁһЩÊý¾Ý¿âϵͳ£¨ÀýÈçOracle£©Ö»Ö§³ÖÔ¤´¦ÀíÓï¾äµÄÅú´¦Àí¡£
ÁíÒ»·½Ã棬HibernateÔò¸ü¼ÓÁé»î£¬ËüÔÊÐíÎÒÃÇÖ»ÐèÐÞ¸ÄÒ»¸öÅäÖü´¿É¿ìËÙÇл»ÎªÅú´¦Àí²Ù×÷¡£
Óï¾ä»º´æ
Óï¾ä»º´æÊÇÁíÒ»ÖÖÌá¸ß³Ö¾Ã²ãÐÔÄܵķ½·¨£¬ÕâÊÇÒ»ÖÖÏÊΪÈËÖªµ«ÓÖÈÝÒ×ÕÆÎÕµÄÐÔÄÜÓÅ»¯·½·¨¡£
Ö»Òªµ×²ãµÄJDBCÇý¶¯³ÌÐòÖ§³Ö£¬Äã¾Í¿ÉÒÔÔÚ¿Í»§¶Ë£¨Çý¶¯³ÌÐò£©»òÊý¾Ý¿â¶Ë£¨Óï·¨Ê÷ÉõÖÁÖ´Ðмƻ®£©Öлº´æPreparedStatement¡£
¹æÄ£µÄËõ·Å
Êý¾Ý¿â¸´ÖÆºÍ·ÖÆ¬ÊÇÌá¸ßÍÌÍÂÁ¿·Ç³£ºÃµÄ·½·¨£¬ÎÒÃÇÓ¦¸Ã³ä·ÖÀûÓÃÕâЩ¾¹ýʵ¼ù¼ìÑéµÄ¼Ü¹¹Ä£Ê½£¬ÒÔÀ©Õ¹ÆóÒµÓ¦Óõij־ò㡣
¼Ü¹¹¸Ä½ø
»º´æ
ÏÖÔÚÄÚ´æµÄ¼Û¸ñºÜµÍ£¬¶øÇÒÔ½À´Ô½µÍ£¬´Ó´ÅÅÌ»òͨ¹ýÍøÂçÀ´¼ìË÷Êý¾ÝµÄÐÔÄÜ´ú¼ÛÈÔÈ»ºÜ¸ß¡£»º´æ×ÔÈ»¶øÈ»µÄ±ä³ÉÁËÔÚÓ¦ÓóÌÐòÐÔÄÜ·½Ãæ²»ÄܺöÊӵĹؼü¡£
µ±È»£¬ÔÚÓ¦ÓõÄÍØÆË½á¹¹ÖÐÒýÈëÒ»¸ö¶ÀÁ¢µÄ»º´æÏµÍ³È·Êµ»áÔö¼Ó¼Ü¹¹µÄ¸´ÔÓ¶È£¬ËùÒÔ£¬Ó¦µ±³ä·ÖÀûÓõ±Ç°Ê¹ÓõĿâºÍ¿ò¼ÜÏÖÓеĻº´æ¹¦ÄÜ¡£
ÀýÈ磬´ó¶àÊýµÄ³Ö¾Ã»¯¿ò¼Ü¶¼Ö§³Ö»º´æ¡£ Spring MVCµÈWeb¿ò¼Ü»¹¿ÉÒÔʹÓÃSpringÖÐÄÚÖõĻº´æÖ§³Ö£¬ÒÔ¼°»ùÓÚETagsµÄÇ¿´óµÄHTTP¼¶»º´æ¡£
ºáÏòÀ©Õ¹
ÎÞÂÛÎÒÃÇÔÚµ¥¸öʵÀýÖÐ×¼±¸Á˶àÉÙÓ²¼þ£¬¶¼»áÓв»¹»ÓõÄʱºò¡£¼ò¶øÑÔÖ®£¬À©Õ¹ÓÐ×ÅÌìÉúµÄ¾ÖÏÞÐÔ£¬µ±ÏµÍ³Óöµ½ÕâЩÎÊÌâʱ£¬ºáÏòÀ©Õ¹ÊÇ´¦Àí¸ü¶à¸ºÔصÄΨһ;¾¶¡£ÕâÒ»²½¿Ï¶¨»áÏ൱µÄ¸´ÔÓ£¬µ«È´ÊÇÀ©Õ¹Ó¦ÓõÄΨһ°ì·¨¡£
¶Ô´ó¶àÊýµÄÏÖ´ú¿ò¼ÜºÍ¿âÀ´Ëµ£¬Õâ·½Ãæ»¹ÊÇÖ§³ÖµÃºÜºÃµÄ£¬¶øÇÒ»á±äµÃÔ½À´Ô½ºÃ¡£ SpringÉú̬ϵͳÓÐÒ»¸öÍêÕûµÄÏîÄ¿¼¯£¬×¨ÃÅÓÃÓÚ½â¾öÕâ¸öÌØ¶¨µÄÓ¦ÓóÌÐò¼Ü¹¹ÁìÓò£¬ÆäËû´ó¶àÊýµÄ¿ò¼ÜÒ²¶¼ÓÐÀàËÆµÄÖ§³Ö¡£
³ýÁËÄܹ»ÌáÉýJavaµÄÐÔÄÜ£¬Í¨¹ý¼¯Èº½øÐкáÏòÀ©Õ¹Ò²ÓÐÆäËûµÄºÃ´¦£¬Ìí¼ÓеĽڵãÄܲúÉúÈßÓ࣬²¢¸üºÃµÄ´¦Àí¹ÊÕÏ£¬´Ó¶øÌá¸ßÕû¸öϵͳµÄ¿ÉÓÃÐÔ¡£
½áÂÛ
ÔÚÕâÆªÎÄÕÂÖУ¬ÎÒÃÇÎ§ÈÆ×ÅÌáÉýJavaÓ¦ÓõÄÐÔÄÜ̽ÌÖÁËÐí¶à¸ÅÄî¡£ÎÒÃÇÊ×ÏȽéÉÜÁ˸ºÔزâÊÔ¡¢»ùÓÚAPM¹¤¾ßµÄÓ¦ÓóÌÐòºÍ·þÎñÆ÷¼à¿Ø£¬Ëæºó½éÉÜÁ˱àд¸ßÐÔÄÜJava´úÂëµÄһЩ×î¼Ñʵ¼ù¡£×îºó£¬ÎÒÃÇÑо¿ÁËJVMÌØ¶¨µÄµ÷Óż¼ÇÉ¡¢Êý¾Ý¿â¶ËµÄÓÅ»¯ºÍ¼Ü¹¹·½ÃæµÄµ÷Õû¡£
|