[StoreStore]
<volatile_store>
[StoreLoad]
<volatile_load>
[LoadLoad|LoadStore]
[StoreStore]
<volatile_store>
[StoreLoad]
<volatile_load>
[LoadLoad|LoadStore]
{ | |
"env": [ | |
"+ env", | |
"AWS_LAMBDA_FUNCTION_VERSION=$LATEST", | |
"AWS_SESSION_TOKEN=**************", | |
"AWS_LAMBDA_LOG_GROUP_NAME=/aws/lambda/lb_runCommand", | |
"LAMBDA_TASK_ROOT=/var/task", | |
"LD_LIBRARY_PATH=/lib64:/usr/lib64:/var/runtime:/var/runtime/lib:/var/task:/var/task/lib", | |
"AWS_LAMBDA_LOG_STREAM_NAME=2017/01/06/[$LATEST]8d6559c688e44b7fa175393949f6c4b2", | |
"NLSPATH=/usr/dt/lib/nls/msg/%L/%N.cat", |
import java.lang.reflect.Field; | |
import sun.misc.Unsafe; | |
import javassist.ClassPool; | |
import javassist.CtClass; | |
public class ClassCopyDemo { | |
/* | |
<!-- Javassist dependency --> |
private static class SingleInstanceProviderWithSingleInstanceCreationGuaranteeByCAS | |
implements SingleInstanceProvider { | |
private static final long INSTANCE_WRAPPER_OFFSET; | |
static { | |
try { | |
INSTANCE_WRAPPER_OFFSET = | |
UNSAFE.objectFieldOffset( | |
SingleInstanceProviderWithSingleInstanceCreationGuaranteeByCAS.class. |
... | |
12897 1652 3 com.hazelcast.nio.serialization.NativeMemoryDataUtil::equals (75 bytes) | |
Decoding compiled method 0x0000000101f0c890: | |
Code: | |
[Entry Point] | |
[Verified Entry Point] | |
[Constants] | |
# {method} {0x000000011e5f1650} 'equals' '(JLcom/hazelcast/nio/serialization/Data;)Z' in 'com/hazelcast/nio/serialization/NativeMemoryDataUtil' | |
# parm0: rsi:rsi = long |
71 1 n 0 java.lang.System::arraycopy (native) (static) | |
73 2 3 java.lang.String::equals (81 bytes) | |
73 3 3 java.lang.String::hashCode (55 bytes) | |
74 4 3 java.lang.String::indexOf (70 bytes) | |
76 5 3 java.lang.String::lastIndexOf (52 bytes) | |
76 6 4 java.lang.String::charAt (29 bytes) | |
76 7 3 java.lang.String::length (6 bytes) | |
76 8 3 java.lang.Math::min (11 bytes) | |
76 9 3 java.lang.Object::<init> (1 bytes) | |
77 12 3 java.util.Arrays::copyOfRange (63 bytes) |
Farklı alanlarda faaliyet gösteren organizasyonlar, modern ihtiyaçları karşılayabilmek amacıyla giderek daha sağlam, dayanıklı ve esnek sistemler geliştirmektedirler. Bu tarz yazılım sistemleri geliştirmek için birbirlerinden bağımsız olarak tasarım örüntüleri ve yazılım mimarileri ortaya çıkmaktadır.
Son yıllarda ihtiyaçların önemli ölçüde değişmesi ile yeni yazılım mimarileri ve tasarım örüntüleri ortaya çıkmıştır. Sadece birkaç yıl önce büyük bir uygulama demek, onlarca sunucu, saniyelerle ölçülen geribildirim süreleri, saatlerce süren bakım çalışmaları ve gigabyte'larca veri demekti. Fakat bugünün modern uygulamaları mobil cihazlardan, milyonlarca işlemcili sunucu kümelerine kadar değişik şekillerde karşımıza çıkmaktadırlar. Veriler ise artık petabyte'lar ile ölçülmektedir. Özetle, bugünün ihtiyaçları dünün yazılım mimarileriyle karşılanamamaktadır.
Bizler sistemlerin duyarlı, dayanıklı, elastik ve mesaj güdümlü yönlerinin gerekliliğini kabullenmekte ve sistem
InstrumentService instrumentService = InstrumentServiceFactory.getInstrumentService(); | |
Instrumenter<String> inst = instrumentService.getInstrumenter(String.class); | |
GeneratedClass<String> redefinedClass = | |
inst. | |
updateMethod("charAt", "return value[$1 - 1];", int.class). | |
build(); | |
instrumentService.redefineClass(redefinedClass); | |
System.out.println("str".charAt(1)); // Prints "s" instead of "t" |
HotSpotSAStackTracerResult [stackTraces= | |
- Thread Name: main | |
|- tr.com.serkanozal.jemstone.Demo.method2(boolean, int, float, long, double, char, java.lang.String) @bci=100, line=74, pc=0x00000001078797e4 (Interpreted frame) | |
parameters: | |
name value type | |
============================================================================== | |
|- b2 false boolean | |
|- i2 100 int | |
|- f2 400.000000 float | |
|- l2 900 long |
HotSpotSAStackTracerResult [stackTraces= | |
- Thread Name: main | |
|- java.lang.ProcessImpl.waitForInterruptibly(long) @bci=0, pc=0x0000000002802ece, Method*=0x00000000173d22d8 (Interpreted frame) | |
local values: | |
order value type | |
============================================================================== | |
|- 0 3567204840 (0xd49f39e8) <primitive> | |
|- 1 928 (0x3a0) <primitive> | |
|- java.lang.ProcessImpl.waitFor() @bci=4, line=449, pc=0x00000000027f7380, Method*=0x00000000173d2250 (Interpreted frame) | |
local values: |