{"id":2455,"date":"2010-09-30T10:09:35","date_gmt":"2010-09-30T02:09:35","guid":{"rendered":"http:\/\/www.killtest.com.tw\/?p=2455"},"modified":"2010-09-30T10:09:35","modified_gmt":"2010-09-30T02:09:35","slug":"java-6","status":"publish","type":"post","link":"https:\/\/www.killtest.com.tw\/?p=2455","title":{"rendered":"Java 6\u4e2d\u7684\u6027\u80fd\u512a\u5316"},"content":{"rendered":"<p>J2SE 6(\u4ee3\u865f\uff1aMustang\u91ce\u99ac)\u4e3b\u8981\u8a2d\u8a08\u539f\u5247\u4e4b\u58f9\u5c31\u662f\u63d0\u5347J2SE\u7684\u6027\u80fd\u548c\u64f4\u5c55\u80fd\u529b\uff0c\u4e3b\u8981\u901a\u904e\u6700\u5927\u7a0b\u5ea6\u63d0\u5347\u904b\u884c\u6548\u7387\uff0c\u66f4\u597d\u7684\u5783\u573e\u6536\u96c6\u548c\u58f9\u4e9b\u5ba2\u6236\u7aef\u6027\u80fd\u4f86\u9054\u5230\u3002<\/p>\n<p>1\u3001\u504f\u5411\u9396\uff08Biased locking\uff09<br \/>\nJava 6\u4ee5\u524d\u52a0\u9396\u64cd\u4f5c\u90fd\u6703\u5c0e\u81f4\u58f9\u6b21\u539f\u5b50CAS\uff08Compare-And-Set\uff09\u64cd\u4f5c\uff0cCAS\u64cd\u4f5c\u662f\u6bd4\u8f03\u8017\u6642\u7684\uff0c\u5373\u4f7f\u9019\u500b\u9396\u4e0a\u5be6\u969b\u4e0a\u6c92\u6709\u6c96\u7a81\uff0c\u53ea\u88ab\u58f9\u500b\u7dda\u7a0b\u64c1\u6709\uff0c\u4e5f\u6703\u5e36\u4f86\u8f03\u5927\u958b\u92b7\u3002\u70ba\u89e3\u6c7a\u9019\u58f9\u554f\u984c\uff0cJava 6\u4e2d\u5f15\u5165\u504f\u5411\u9396\u6280\u8853\uff0c\u5373\u58f9\u500b\u9396\u504f\u5411\u65bc\u7b2c\u58f9\u500b\u52a0\u9396\u7684\u7dda\u7a0b\uff0c\u8a72\u7dda\u7a0b\u5f8c\u7e8c\u52a0\u9396\u64cd\u4f5c\u4e0d\u9700\u8981\u540c\u6b65\u3002\u5927\u6982\u7684\u5be6\u73fe\u5982\u4e0b\uff1a\u58f9\u500b\u9396\u6700\u521d\u70baNEUTRAL\u72c0\u614b\uff0c\u7576\u7b2c\u58f9\u500b\u7dda\u7a0b\u52a0\u9396\u6642\uff0c\u5c07\u8a72\u9396\u7684\u72c0\u614b\u4fee\u6539\u70baBIASED\uff0c\u4e26\u8a18\u9304\u7dda\u7a0bID\uff0c\u7576\u9019\u58f9\u7dda\u7a0b\u9032\u884c\u5f8c\u7e8c\u52a0\u9396\u64cd\u4f5c\u6642\uff0c\u82e5\u767c\u73fe\u72c0\u614b\u662fBIASED\u4e26\u4e14\u7dda\u7a0bID\u662f\u7576\u524d\u7dda\u7a0bID\uff0c\u5247\u53ea\u8a2d\u7f6e\u58f9\u4e0b\u52a0\u9396\u6a19\u8a8c\uff0c\u4e0d\u9700\u8981\u9032\u884cCAS\u64cd\u4f5c\u3002\u5176\u5b83\u7dda\u7a0b\u82e5\u8981\u52a0\u9019\u500b\u9396\uff0c\u9700\u8981\u4f7f\u7528CAS\u64cd\u4f5c\u5c07\u72c0\u614b\u66ff\u63db\u70baREVOKE\uff0c\u4e26\u7b49\u5f85\u52a0\u9396\u6a19\u8a8c\u6e05\u96f6\uff0c\u4ee5\u5f8c\u8a72\u9396\u7684\u72c0\u614b\u5c31\u8b8a\u6210 DEFAULT\uff0c\u5e38\u7528\u820a\u7684\u7b97\u6cd5\u8655\u7406\u3002\u9019\u58f9\u529f\u80fd\u53ef\u7528-XX:-UseBiasedLocking\u547d\u4ee4\u7981\u6b62\u3002<\/p>\n<p>2\u3001\u9396\u7c97\u5316\uff08Lock coarsening\uff09<br \/>\n\u5982\u679c\u58f9\u6bb5\u4ee3\u78bc\u7d93\u5e38\u6027\u7684\u52a0\u9396\u548c\u89e3\u9396\uff0c\u5728\u89e3\u9396\u8207\u4e0b\u6b21\u52a0\u9396\u4e4b\u9593\u53c8\u6c92\u5e79\u4ec0\u9ebd\u4e8b\u60c5\uff0c\u5247\u53ef\u4ee5\u5c07\u591a\u6b21\u52a0\u52a0\u9396\u89e3\u9396\u64cd\u4f5c\u5408\u4e26\u6210\u58f9\u5c0d\u3002\u9019\u58f9\u529f\u80fd\u53ef\u7528-XX:-EliminateLocks\u7981\u6b62\u3002<\/p>\n<p>3\u3001\u81ea\u9069\u61c9\u81ea\u65cb\uff08Adaptive spinning\uff09<br \/>\n\u58f9\u822c\u5728\u591aCPU\u7684\u6a5f\u5668\u4e0a\u52a0\u9396\u5be6\u73fe\u90fd\u6703\u5305\u542b\u58f9\u500b\u77ed\u671f\u7684\u81ea\u65cb\u904e\u7a0b\u3002\u81ea\u65cb\u7684\u6b21\u6578\u4e0d\u592a\u597d\u6c7a\u5b9a\uff0c\u81ea\u65cb\u5c11\u4e86\u6703\u5c0e\u81f4\u7dda\u7a0b\u88ab\u639b\u8d77\u548c\u4e0a\u4e0b\u6587\u5207\u63db\u589e\u52a0\uff0c\u81ea\u65cb\u591a\u4e86\u8017CPU\u3002\u70ba\u6b64Java 6\u4e2d\u5f15\u5165\u81ea\u9069\u61c9\u81ea\u65cb\u6280\u8853\uff0c\u5373\u6839\u64da\u58f9\u500b\u9396\u6700\u8fd1\u81ea\u65cb\u52a0\u9396\u6210\u529f\u6982\u7387\u52d5\u614b\u8abf\u6574\u81ea\u65cb\u6b21\u6578\u3002<\/p>\n<p>4\u3001\u5e38\u7528\u5927\u5167\u5b58\u5206\u5e03\u7684\u5806\uff08large page heap\uff09<br \/>\n\u5728\u5927\u5167\u5206\u9801\u662fx86\/amd64\u67b6\u69cb\u4e0a\u7528\u4f86\u6e1b\u5c0fTLB\uff08\u865b\u64ec\u5730\u5740\u5230\u7269\u7406\u5730\u5740\u7ffb\u8b6f\u7de9\u5b58\uff09\u5927\u5c0f\u7684TLB\u5931\u914d\u7387\u3002Java 6\u4e2d\u7684\u5167\u5b58\u5806\u53ef\u4ee5\u4f7f\u7528\u9019\u58f9\u6280\u8853\u3002<\/p>\n<p>5\u3001\u63d0\u9ad8\u6578\u7d44\u62f7\u8c9d\u6027\u80fd<br \/>\n\u5c0d\u6bcf\u7a2e\u985e\u578b\u5927\u5c0f\u5beb\u58f9\u500b\u5b9a\u5236\u7684\u532f\u7de8\u6578\u7d44\u62f7\u8c9d\u7a0b\u5e8f\u3002<\/p>\n<p>6\u3001\u5f8c\u81fa\u9032\u884c\u4ee3\u78bc\u512a\u5316<br \/>\nBackground Compilation in HotSpot\u2122 Client Compiler: \u5f8c\u81fa\u9032\u884c\u4ee3\u78bc\u512a\u5316<\/p>\n<p>7\u3001\u7dda\u6027\u6383\u63cf\u5bc4\u5b58\u5668\u5206\u914d\u7b97\u6cd5\uff08Linear Scan Register Allocation\uff09:<br \/>\n\u58f9\u7a2e\u65b0\u7684\u5bc4\u5b58\u5668\u5206\u914d\u7b56\u7565\uff0c\u57fa\u65bcSSA\uff08static single assignment\uff09\uff0c\u6027\u80fd\u63d0\u9ad810%\u5de6\u53f3\u3002\u5e38\u7528\u7684\u5bc4\u5b58\u5668\u5206\u914d\u7b97\u6cd5\u5c07\u5bc4\u5b58\u5668\u5206\u914d\u770b\u4f5c\u5716\u8457\u8272\u554f\u984c\uff0c\u6642\u9593\u5fa9\u96dc\u5ea6\u662fO(n^4)\uff0c\u4e0d\u9069\u7528\u65bcJava\u7684JIT\u7de8\u8b6f\u3002\u539f\u4f86\u7684JVM\u88cf\u662f\u6839\u64da\u58f9\u4e9b\u672c\u5730\u555f\u767c\u5f0f\u898f\u5247\u4f86\u5206\u914d\u5bc4\u5b58\u5668\uff0c\u6548\u679c\u4e0d\u592a\u597d\uff0cJava 6\u4e2d\u4f7f\u7528\u7684\u7dda\u6027\u6383\u63cf\u5bc4\u5b58\u5668\u7b97\u6cd5\u80fd\u5920\u9054\u5230\u8207\u5716\u984f\u8272\u7b97\u6cd5\u76f8\u4f3c\u7684\u6548\u679c\uff0c\u4e26\u4e14\u6642\u9593\u5fa9\u96dc\u5ea6\u662f\u7dda\u6027\u7684\u3002<\/p>\n<p>8\u3001\u4e26\u884c\u7e2e\u4e26\u5783\u573e\u6536\u96c6\u5668\uff08Parallel Compaction Collector\uff09<br \/>\n\u9032\u884cFull GC\u6642\u4f7f\u7528\u4e26\u884c\u5783\u573e\u6536\u96c6\uff08JDK 5\u88cf\u539f\u4f86\u975eFull GC\u662f\u4e26\u884c\u7684\u4f46Full GC\u662f\u4e32\u884c\u7684\uff09\uff0c\u4f7f\u7528-XX:+UseParallelOldGC\u958b\u555f\u9019\u58f9\u529f\u80fd<\/p>\n<p>9\u3001\u4e26\u884c\u4f4e\u505c\u9813\u5783\u573e\u6536\u96c6\u5668\uff08Concurrent Low Pause Collector\uff09<br \/>\n\u986f\u5f0f\u8abf\u7528gc\uff08\u5982System.gc\uff09\u6642\u4e5f\u53ef\u4ee5\u4e26\u884c\u9032\u884c\u6a19\u8a18-\u6e05\u6383\u5f0f\u5783\u573e\u6536\u96c6\uff0c\u4f7f\u7528-XX:+ExplicitGCInvokesConcurrent\u958b\u555f\u3002<\/p>\n<p>10\u3001Ergonomics in the 6.0 Java Virtual Machine<br \/>\n\u81ea\u52d5\u8abf\u6574\u5783\u573e\u6536\u96c6\u7b56\u7565\u3001\u5806\u5927\u5c0f\u7b49\u914d\u7f6e\uff0c\u9019\u58f9\u529f\u80fd\u5728JDK 5\u4e2d\u52a0\u5165\uff0cJDK 6\u4e2d\u5f97\u5230\u986f\u8457\u589e\u5f37\uff0cSPECjbb2005\u6027\u80fd\u63d0\u9ad870%\u3002<\/p>\n<p>11\u3001boot\u985e\u88dd\u8f09\u5668\u7684\u512a\u5316<br \/>\njre\u4e2d\u589e\u52a0\u58f9\u500b\u63cf\u8ff0package\u6240\u5728jar\u6587\u4ef6\u7684\u5143\u7d22\u5f15\u6587\u4ef6\uff0c\u52a0\u5febclassloader\u52a0\u8f09\u985e\u6027\u80fd\uff0c\u63d0\u9ad8\u684c\u9762Java\u61c9\u7528\u555f\u52d5\u901f\u5ea6\uff08+15%\uff09\u3002\u5167\u5b58\u5360\u7528\u4e5f\u6e1b\u5c11\u4e8610%<\/p>\n<p>12\u3001\u5716\u5f62\u7a0b\u5e8f\u512a\u5316<br \/>\n\u5728jvm\u555f\u52d5\u4e4b\u524d\u986f\u793asplash\u3002<\/p>\n<p>Swing\u7a0b\u5e8f\u4e2d\u6bcf\u500b\u7a97\u53e3\u6709\u58f9\u500b\u5f8c\u81fa\u986f\u793a\u7de9\u5b58\uff0c\u7576\u8a72\u7a97\u53e3\u539f\u4f86\u88ab\u906e\u64cb\uff0c\u73fe\u5728\u8981\u986f\u793a\u6642\u76f4\u63a5\u5f9e\u8a72\u7de9\u5b58\u62f7\u8c9d\u6578\u64da\u9032\u884c\u6e32\u67d3\uff0c\u5373\u4f7f\u8a72\u7a97\u53e3\u7684\u7e6a\u5236\u7dda\u7a0b\u88ab\u963b\u585e\u4e5f\u53ef\u4ee5\u5b8c\u6210\u9019\u58f9\u6e32\u67d3\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>J2SE 6(\u4ee3\u865f\uff1aMustang\u91ce\u99ac)\u4e3b\u8981\u8a2d\u8a08\u539f\u5247\u4e4b\u58f9\u5c31\u662f\u63d0\u5347J2SE\u7684\u6027\u80fd\u548c\u64f4\u5c55\u80fd\u529b\uff0c\u4e3b\u8981\u901a\u904e\u6700\u5927\u7a0b\u5ea6\u63d0\u5347\u904b\u884c\u6548\u7387\uff0c\u66f4\u597d\u7684\u5783\u573e\u6536\u96c6\u548c\u58f9\u4e9b\u5ba2\u6236\u7aef\u6027\u80fd\u4f86\u9054\u5230\u3002 1\u3001\u504f\u5411\u9396\uff08Biased locking\uff09 Java 6\u4ee5\u524d\u52a0\u9396\u64cd\u4f5c\u90fd\u6703\u5c0e\u81f4\u58f9\u6b21\u539f\u5b50CAS\uff08Compare-And-Set\uff09\u64cd\u4f5c\uff0cCAS\u64cd\u4f5c\u662f\u6bd4\u8f03\u8017\u6642\u7684\uff0c\u5373\u4f7f\u9019\u500b\u9396\u4e0a\u5be6\u969b\u4e0a\u6c92\u6709\u6c96\u7a81\uff0c\u53ea\u88ab\u58f9\u500b\u7dda\u7a0b\u64c1\u6709\uff0c\u4e5f\u6703\u5e36\u4f86\u8f03\u5927\u958b\u92b7\u3002\u70ba\u89e3\u6c7a\u9019\u58f9\u554f\u984c\uff0cJava 6\u4e2d\u5f15\u5165\u504f\u5411\u9396\u6280\u8853\uff0c\u5373\u58f9\u500b\u9396\u504f\u5411\u65bc\u7b2c\u58f9\u500b\u52a0\u9396\u7684\u7dda\u7a0b\uff0c\u8a72\u7dda\u7a0b\u5f8c\u7e8c\u52a0\u9396\u64cd\u4f5c\u4e0d\u9700\u8981\u540c\u6b65\u3002\u5927\u6982\u7684\u5be6\u73fe\u5982\u4e0b\uff1a\u58f9\u500b\u9396\u6700\u521d\u70baNEUTRAL\u72c0\u614b\uff0c\u7576\u7b2c\u58f9\u500b\u7dda\u7a0b\u52a0\u9396\u6642\uff0c\u5c07\u8a72\u9396\u7684\u72c0\u614b\u4fee\u6539\u70baBIASED\uff0c\u4e26\u8a18\u9304\u7dda\u7a0bID\uff0c\u7576\u9019\u58f9\u7dda\u7a0b\u9032\u884c\u5f8c\u7e8c\u52a0\u9396\u64cd\u4f5c\u6642\uff0c\u82e5\u767c\u73fe\u72c0\u614b\u662fBIASED\u4e26\u4e14\u7dda\u7a0bID\u662f\u7576\u524d\u7dda\u7a0bID\uff0c\u5247\u53ea\u8a2d\u7f6e\u58f9\u4e0b\u52a0\u9396\u6a19\u8a8c\uff0c\u4e0d\u9700\u8981\u9032\u884cCAS\u64cd\u4f5c\u3002\u5176\u5b83\u7dda\u7a0b\u82e5\u8981\u52a0\u9019\u500b\u9396\uff0c\u9700\u8981\u4f7f\u7528CAS\u64cd\u4f5c\u5c07\u72c0\u614b\u66ff\u63db\u70baREVOKE\uff0c\u4e26\u7b49\u5f85\u52a0\u9396\u6a19\u8a8c\u6e05\u96f6\uff0c\u4ee5\u5f8c\u8a72\u9396\u7684\u72c0\u614b\u5c31\u8b8a\u6210 DEFAULT\uff0c\u5e38\u7528\u820a\u7684\u7b97\u6cd5\u8655\u7406\u3002\u9019\u58f9\u529f\u80fd\u53ef\u7528-XX:-UseBiasedLocking\u547d\u4ee4\u7981\u6b62\u3002 2\u3001\u9396\u7c97\u5316\uff08Lock coarsening\uff09 \u5982\u679c\u58f9\u6bb5\u4ee3\u78bc\u7d93\u5e38\u6027\u7684\u52a0\u9396\u548c\u89e3\u9396\uff0c\u5728\u89e3\u9396\u8207\u4e0b\u6b21\u52a0\u9396\u4e4b\u9593\u53c8\u6c92\u5e79\u4ec0\u9ebd\u4e8b\u60c5\uff0c\u5247\u53ef\u4ee5\u5c07\u591a\u6b21\u52a0\u52a0\u9396\u89e3\u9396\u64cd\u4f5c\u5408\u4e26\u6210\u58f9\u5c0d\u3002\u9019\u58f9\u529f\u80fd\u53ef\u7528-XX:-EliminateLocks\u7981\u6b62\u3002 3\u3001\u81ea\u9069\u61c9\u81ea\u65cb\uff08Adaptive spinning\uff09 \u58f9\u822c\u5728\u591aCPU\u7684\u6a5f\u5668\u4e0a\u52a0\u9396\u5be6\u73fe\u90fd\u6703\u5305\u542b\u58f9\u500b\u77ed\u671f\u7684\u81ea\u65cb\u904e\u7a0b\u3002\u81ea\u65cb\u7684\u6b21\u6578\u4e0d\u592a\u597d\u6c7a\u5b9a\uff0c\u81ea\u65cb\u5c11\u4e86\u6703\u5c0e\u81f4\u7dda\u7a0b\u88ab\u639b\u8d77\u548c\u4e0a\u4e0b\u6587\u5207\u63db\u589e\u52a0\uff0c\u81ea\u65cb\u591a\u4e86\u8017CPU\u3002\u70ba\u6b64Java 6\u4e2d\u5f15\u5165\u81ea\u9069\u61c9\u81ea\u65cb\u6280\u8853\uff0c\u5373\u6839\u64da\u58f9\u500b\u9396\u6700\u8fd1\u81ea\u65cb\u52a0\u9396\u6210\u529f\u6982\u7387\u52d5\u614b\u8abf\u6574\u81ea\u65cb\u6b21\u6578\u3002 4\u3001\u5e38\u7528\u5927\u5167\u5b58\u5206\u5e03\u7684\u5806\uff08large page heap\uff09 \u5728\u5927\u5167\u5206\u9801\u662fx86\/amd64\u67b6\u69cb\u4e0a\u7528\u4f86\u6e1b\u5c0fTLB\uff08\u865b\u64ec\u5730\u5740\u5230\u7269\u7406\u5730\u5740\u7ffb\u8b6f\u7de9\u5b58\uff09\u5927\u5c0f\u7684TLB\u5931\u914d\u7387\u3002Java 6\u4e2d\u7684\u5167\u5b58\u5806\u53ef\u4ee5\u4f7f\u7528\u9019\u58f9\u6280\u8853\u3002 5\u3001\u63d0\u9ad8\u6578\u7d44\u62f7\u8c9d\u6027\u80fd \u5c0d\u6bcf\u7a2e\u985e\u578b\u5927\u5c0f\u5beb\u58f9\u500b\u5b9a\u5236\u7684\u532f\u7de8\u6578\u7d44\u62f7\u8c9d\u7a0b\u5e8f\u3002 6\u3001\u5f8c\u81fa\u9032\u884c\u4ee3\u78bc\u512a\u5316 Background Compilation in HotSpot\u2122 Client Compiler: \u5f8c\u81fa\u9032\u884c\u4ee3\u78bc\u512a\u5316 7\u3001\u7dda\u6027\u6383\u63cf\u5bc4\u5b58\u5668\u5206\u914d\u7b97\u6cd5\uff08Linear Scan Register Allocation\uff09: \u58f9\u7a2e\u65b0\u7684\u5bc4\u5b58\u5668\u5206\u914d\u7b56\u7565\uff0c\u57fa\u65bcSSA\uff08static single assignment\uff09\uff0c\u6027\u80fd\u63d0\u9ad810%\u5de6\u53f3\u3002\u5e38\u7528\u7684\u5bc4\u5b58\u5668\u5206\u914d\u7b97\u6cd5\u5c07\u5bc4\u5b58\u5668\u5206\u914d\u770b\u4f5c\u5716\u8457\u8272\u554f\u984c\uff0c\u6642\u9593\u5fa9\u96dc\u5ea6\u662fO(n^4)\uff0c\u4e0d\u9069\u7528\u65bcJava\u7684JIT\u7de8\u8b6f\u3002\u539f\u4f86\u7684JVM\u88cf\u662f\u6839\u64da\u58f9\u4e9b\u672c\u5730\u555f\u767c\u5f0f\u898f\u5247\u4f86\u5206\u914d\u5bc4\u5b58\u5668\uff0c\u6548\u679c\u4e0d\u592a\u597d\uff0cJava 6\u4e2d\u4f7f\u7528\u7684\u7dda\u6027\u6383\u63cf\u5bc4\u5b58\u5668\u7b97\u6cd5\u80fd\u5920\u9054\u5230\u8207\u5716\u984f\u8272\u7b97\u6cd5\u76f8\u4f3c\u7684\u6548\u679c\uff0c\u4e26\u4e14\u6642\u9593\u5fa9\u96dc\u5ea6\u662f\u7dda\u6027\u7684\u3002 8\u3001\u4e26\u884c\u7e2e\u4e26\u5783\u573e\u6536\u96c6\u5668\uff08Parallel Compaction Collector\uff09 \u9032\u884cFull GC\u6642\u4f7f\u7528\u4e26\u884c\u5783\u573e\u6536\u96c6\uff08JDK 5\u88cf\u539f\u4f86\u975eFull GC\u662f\u4e26\u884c\u7684\u4f46Full GC\u662f\u4e32\u884c\u7684\uff09\uff0c\u4f7f\u7528-XX:+UseParallelOldGC\u958b\u555f\u9019\u58f9\u529f\u80fd 9\u3001\u4e26\u884c\u4f4e\u505c\u9813\u5783\u573e\u6536\u96c6\u5668\uff08Concurrent Low Pause Collector\uff09 \u986f\u5f0f\u8abf\u7528gc\uff08\u5982System.gc\uff09\u6642\u4e5f\u53ef\u4ee5\u4e26\u884c\u9032\u884c\u6a19\u8a18-\u6e05\u6383\u5f0f\u5783\u573e\u6536\u96c6\uff0c\u4f7f\u7528-XX:+ExplicitGCInvokesConcurrent\u958b\u555f\u3002 10\u3001Ergonomics in the 6.0 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[56],"tags":[3173,707],"class_list":["post-2455","post","type-post","status-publish","format-standard","hentry","category-java","tag-java","tag-java6"],"_links":{"self":[{"href":"https:\/\/www.killtest.com.tw\/index.php?rest_route=\/wp\/v2\/posts\/2455","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.killtest.com.tw\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.killtest.com.tw\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.killtest.com.tw\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.killtest.com.tw\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2455"}],"version-history":[{"count":1,"href":"https:\/\/www.killtest.com.tw\/index.php?rest_route=\/wp\/v2\/posts\/2455\/revisions"}],"predecessor-version":[{"id":2456,"href":"https:\/\/www.killtest.com.tw\/index.php?rest_route=\/wp\/v2\/posts\/2455\/revisions\/2456"}],"wp:attachment":[{"href":"https:\/\/www.killtest.com.tw\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2455"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.killtest.com.tw\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2455"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.killtest.com.tw\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2455"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}