J2EE���~�b�V�����N���e�B�J���ȕ���ɓK�p�����悤�ɂȂ�AJava�̃p�t�H�[�}���X�`���[�j���O�̏d�v���͂���ɍ��܂��Ă��܂��B�p�t�H�[�}���X�`���[�j���O�ɂ͂��܂��܂ȃp�����[�^������܂����A���ł�Java VM�Ɋ֘A����`���[�j���O�̌��ʂ͑傫���Ƃ����Ă��܂��B�{�e�́AJava VM�Ɋ֘A����`���[�j���O��@���w�Ԃ��߂̑O��m������邱�Ƃ�ړI�ɂ��Ă��܂��i�ҏW���j�B
�{�L����2004�N�Ɏ��M���ꂽ���̂ł��BJava�`���[�j���O�S�ʂ̍ŐV������IT �L�[���[�hINDEX�́uJava�p�t�H�[�}���X�Ǘ��v�����Q�Ƃ��������B
�@Java VM�Ɋ֘A����`���[�j���O���s���AJ2EE�A�v���P�[�V�����̃p�t�H�[�}���X���グ�邽�߂ɂ́AJava VM�ɂ��ďڂ����m��K�v������܂��B�{�e��2��ɓn����Java VM�̊�{�\���Ɠ��쌴�����ڍׂɉ�����܂����A���e�𗝉����邽�߂ɂ̓v���O�������R���s���[�^��œ��삷���{������Java VM�̊�{�p���m���Ă���K�v������܂��BJava VM�̊�{�p��Ɋւ��ẮA�u���s�X�s�[�h�ɒ��킷��Java�A�[�L�e�N�`���̕ϑJ�����ǂ��v�iJava Solution�j���Q�l�ɂ��Ă��������B�܂��AItanium�A�[�L�e�N�`���ɂ��ẮA�u���炩�ɂȂ�Itanium 2�̐��\�ƃv���b�g�t�H�[���v�iSystem Insider�j���n�߂Ƃ���System Insider�t�H�[�������̊֘A�L�����Q�l�ɂ��Ă��������B�{�A�ڂ̏I����ɂ́AJava VM�Ɋ֘A����`���[�j���O�e�N�j�b�N���������uJava VM�p�t�H�[�}���X�e�N�j�b�N�v�i����j�̘A�ڂ��\�肳��Ă��܂��B
�@�uWrite Once, Run Everywhere�v�Ƃ������t�ɏے������悤�ɁAJava����ŏ�����Java�R���p�C���ō쐬����Java�v���O�����i�N���X�t�@�C���j�́AJava VM�����݂�����ł�����̉���OS��n�[�h�E�F�A�����ł��낤�ƁA������������܂��B�����Java VM�����̉��ʂɂ���OS��n�[�h�E�F�A�̈Ⴂ���z�����A���̏�ʂɂ���Java�v���O�����Ƌ��ʂ̃C���^�[�t�F�C�X����Ă��邱�ƂŎ�������Ă��܂��B�܂�A�ǂ�Ȋ��̉��ł��AJava�v���O�������猩���Java VM�Ƃ������z�n�[�h�E�F�A��œ��삷��悤�Ɍ�����킯�ł��B
�@Java����ŏ����ꂽ�\�[�X�R�[�h�t�@�C����Java�R���p�C���ijavac�j�ŃR���p�C������ƁAJava�o�C�g�R�[�h���܂ރN���X�t�@�C���i.class�j����������܂��i�}2�Q���j�BJava�R���p�C���́A�T���E�}�C�N���V�X�e���Y��JDK�t���̂��̈ȊO�ɂ��AJava�J������̔�����T�[�h�p�[�e�B�[�̃\�t�g�E�F�A�x���_�Ȃǂ��������Ă��܂��B
�@Java�R���p�C���ɂ��Java�\�[�X�R�[�h�̃R���p�C���ƁAC/C++�R���p�C���ɂ��C/C++�\�[�X�R�[�h�̃R���p�C���̑Δ���}3�Ɏ����܂��B���������ƁAJava�������C���^�v���^�����Ƃ���ꂽ�Ƃ͂����A�J������Ƃ��Ă�Perl�Ȃǂ���C/C++�ɋ߂����̂ł��邱�Ƃ�������܂��B�������AC/C++�Ȃǂ̌���ō쐬�����\�[�X�R�[�h��OS�Ɉˑ����܂����AC/C++�R���p�C���͓���̃v���Z�b�T��p�̃R�[�h�����܂��B���ʂƂ��āAC/C++�R���p�C���Ő����������s�t�@�C���̓n�[�h�E�F�A�i�v���Z�b�T�j�ƃ\�t�g�E�F�A�i�I�y���[�e�B���O�V�X�e���j�̗����Ɉˑ����邱�ƂɂȂ�܂��B����ɑ���Java�́A����̃n�[�h�E�F�A��\�t�g�E�F�A�ւ̈ˑ����Ȃ��R�[�h�����܂��B
�@Java�N���X�t�@�C���̒��ɂ͂��̃N���X�Œ�`����Ă��郁�\�b�h�A�t�B�[���h�ϐ��A�萔�Ȃǂ̏������Ă���A���\�b�h���ɂ̓o�C�g�R�[�h���������܂�Ă��܂��i�}2�Q���j�B�o�C�g�R�[�h�͂��̖��̂Ƃ���I�y�R�[�h��1�o�C�g�Œ蒷�ŁA�I�y�����h�͉ϒ��ł��B
�@�Ƃ���ŁA�}4�Ɏ����悤�ɁAJava VM��Ŏ��s�����o�C�g�R�[�h�́A���v���Z�b�T��Ŏ��s�����}�V���R�[�h�ɑΉ�������̂ƍl���邱�Ƃ��ł��܂��B���Ȃ킿�A�o�C�g�R�[�h�ɂƂ���Java VM�͎��v���Z�b�T�ɊY��������̂ł��邱�Ƃ���A���z�̎��v���Z�b�T�Ƃ����Ӗ���Java���z�}�V���iJava Virtual Machine�j�ƌĂ��킯�ł��B
�@Java VM�̓\�t�g�E�F�A�Ŏ�������邽�߁A���܂��܂ȃv���b�g�t�H�[���ւ̈ڐA���\�ł���A���̌��ʁAJava�o�C�g�R�[�h�i�܂�Java�v���O�����j�����܂��܂ȃn�[�h�E�F�A�^�\�t�g�E�F�A�v���b�g�t�H�[���Ŏ��s�����邱�Ƃ��ł��܂��B
�@Java VM�̎����̓T���E�}�C�N���V�X�e���Y�����Ă��܂��B�������A�T���E�}�C�N���V�X�e���Y����\�[�X�R�[�h���C�Z���X���Ȃ��Ă��AJava���z�}�V���d�l�iJava Virtual Machine Specification�j�����ΓƎ���Java VM����邱�Ƃ͉\�Ȃ��߁A�e�Ђ��Ǝ���Java VM������Ă��܂��B
�@�Ⴆ�AIBM��Java VM��BEA��JRockit�͓Ǝ���Java VM�̗�ł��B�܂��AHP�̂悤�ɃT���E�}�C�N���V�X�e���Y����\�[�X�R�[�h���C�Z���X���Ă���ꍇ�A�v���Z�b�T��OS�Ɉˑ����镔���̎�����A�e��p�����[�^�̐ݒ�͓Ǝ��ɍs���Ă��܂����A����ȊO�̊�{�����̓T���E�}�C�N���V�X�e���Y�̃R�[�h�����̂܂g���Ă��܂��B���Ȃ킿�AHP��Java VM�̓T���E�}�C�N���V�X�e���Y������Java VM�Ɠ���̂��̂Ƃ������Ƃł��B���݂�Java VM�̓p�t�H�[�}���X�����P����HotSpot VM�Ȃ̂ŁAHP��Java VM�̓T����HotSpot VM�Ɗ�{�����̃\�[�X�R�[�h�͓���ł��B�@
�@Java VM�͓����OS�ƃn�[�h�E�F�A��ɍ��ꂽ���z�}�V���ł���A�\�t�g�E�F�A�ɂ���������Ă��܂��B�����������Java VM��Java�̎��s�������\�t�g�E�F�A�G�~�����[�^�ł��B�ق��̃\�t�g�E�F�A�G�~�����[�^�̗�Ƃ��ẮAItanium�}�V�����HP-UX��PA-RISC/HP-UX�̎��s�������Aries������܂��BPA-RISC/HP-UX�̃A�v���P�[�V������Itanium/HP-UX�V�X�e����Ŏ��s�ł���̂́AAries�̂������ł��B
�@Java VM��œ��삷��Java�v���O������1�̃v���Z�X�Ƃ��Č���ƁAJava VM�Ƃ����v���O���������삵�Ȃ���AJava�v���O�����������v���Z�X���œ��삵�Ă��邱�ƂɂȂ�܂��BJava VM�̉��z��������ł̃C���[�W���}5�̂悤�ɂȂ�܂��BJava�v���O�����삳����ɂ�Java�q�[�v��Java VM�X�^�b�N���K�v�ɂȂ�܂��BJava�q�[�v�ɂ̓N���X�t�@�C����W�J���Ă���̈��Java�N���X�̃C���X�^���X���u�����̈悪����܂��B����ɑ��AJava VM���g���v���O�����Ȃ̂Ŏ��s�e�L�X�g�ɉ�����C�q�[�v�ƃX�^�b�N�������܂��B���߃|�C���^���o�C�g�R�[�h�̖��߂��w�����̂ƃl�C�e�B�u�R�[�h���w�����̂����݂��܂��BJava�v���O���������s���Ă���X���b�h�ł́A�v���Z�b�T�̖��߃|�C���^�͎�ɃC���^�v���^�����R�[�h�L���b�V�������w���Ă��܂��B
�@�}5�̍\���𗝉����Ă�����Java�ɂ������蔭�����̑Ή��ɖ𗧂��܂��B�Ⴆ�u�������s���v�Ƃ����ɂȂ����ꍇ�AC�q�[�v������Ȃ��AJava�v���O�����̃q�[�v������Ȃ��A�X�^�b�N������Ȃ��AOS�̃X���b�v������Ȃ��Ȃǂ��܂��܂Ȍ������l�����܂��B���ꂼ��̗̈�̎g�p�ړI�₱�����ǂ��������I�v�V������p�����[�^�Őݒ�ł��邩�A�܂����ۂ�Java VM��OS�̃��\�[�X���ǂ̂悤�Ɏg�p���Ă��邩�Ȃǂ𗝉����Ă����K�v������܂��B
�@�N���X�t�@�C����Java VM�̃N���X���[�_�ɂ��t�@�C�����烁�����ւƃ��[�h����܂��BHotSpot VM�ł́A�u-verbose:class�v��t���ċN������ƃ��[�h���ꂽ�N���X��\�����Ă���܂��B�}6�Ɏ����悤�ɁAHotSpot VM�ł̓N���X�̐ÓI����Java�q�[�v��Permanent Generation�̈�ɔz�u����܂��B�ÓI���ɂ́A���\�b�h��`�i�o�C�g�R�[�h�j�A�t�B�[���h��`�A�萔�A����� static �錾����Ă���t�B�[���h�̒l�Ȃǂ��܂܂�܂��BJava�ɂ̓N���X�I�Ƀ��[�h����@�\�����邽�߁AJava VM�̋N�����ȊO�ł��N���X�����[�h���邱�Ƃ��ł��܂��BJSP�͂��̎d�g�݂𗘗p���Ă��邽�߁AJSP�삳���Ă���Java VM��Permanent Generation�̈�̎g�p�ʂ͓��I�ɑ����܂��B�N���X���C���X�^���X������ƁA�������ꂽ�I�u�W�F�N�g��Java�q�[�v��New�^Old Generation�̈�ɒu����܂��BJava�q�[�v�͂ǂ���̗̈���K�x�[�W�R���N�V�����̑ΏۂɂȂ�܂��BJava�q�[�v�����̏ڍׂ͎���̃K�x�[�W�R���N�V�����̉�Ő������܂��B
�@Java�Ɍ��炸�A��ʂɊ���1�Ă�邽�тɃX�^�b�N��ɃX�^�b�N�t���[����1�ς܂�܂��B���̃X�^�b�N�t���[���̒��ɂ̓��[�J���ϐ��Ǝ��ɌĂяo�����ɓn�������̈ꕔ���u����܂��BJava�ɂ��X�^�b�N������AJava�o�C�g�R�[�h�C���^�v���^�����p���܂��BJava VM�X�^�b�N�̃X�^�b�N�t���[�����ɂ́A���[�J���ϐ��ƈ����ɉ����ăI�y�����h�X�^�b�N���u����܂��B�I�y�����h�X�^�b�N�́AJava VM���X�^�b�N�}�V���ł��邽�߂ɕK�v�Ȃ��̂ł��B���L��Java�o�C�g�R�[�h�̓I�y�����h�X�^�b�N�𗘗p�������Z�̗�ł��B����́A0�Ԗڂ�1�Ԗڂ̃��[�J���ϐ����A�i���̃t���[�����́j�I�y�����h�X�^�b�N�̈�ɐς݁A����2�̒l�����Z���܂��B
iload_0 iload_1 iadd
�@HotSpot VM�ł́AJava VM�X�^�b�N�ƃl�C�e�B�u�R�[�h�̃X�^�b�N�͓����̈�ɘA�����đ��݂��܂��B�܂�Java�v���O�����̃t���[���ƃl�C�e�B�u�R�[�h�̃t���[����1�̃X�^�b�N���ɍ��݂��邱�ƂɂȂ�܂��B���X�g1��Java�v���O���������s���Ă���Java�X���b�h�̃X�^�b�N�g���[�X��HP��gdb�ŕ\�����������̂ł��B
�@�t���[��#14����#0�Ɍ������ď��ԂɊ����Ăяo����Ă��邱�Ƃ������Ă��܂��B�X���b�h������ɂ������̏������s���A�r������Java�A�v���P�[�V���������s���Ă���̂�������܂��B�����ŁA#14����#8��Java VM���g�̃t���[���ŁA#7����#0��Java�v���O�����̃t���[���ł��B
$ gdb /opt/java1.4/bin/IA64N/java -p 4429 HP gdb 4.0 for HP Itanium (32 or 64 bit) and target HP-UX 11.2x. Copyright 1986 - 2001 Free Software Foundation, Inc. Hewlett-Packard Wildebeest 4.0 (based on GDB) is covered by the GNU General Public License. Type "show copying" to see the conditions to change it and/or distribute copies. Type "show warranty" for warranty/support. ..(no debugging symbols found)... Attaching to program: /opt/java1.4/bin/IA64N/java, process 4429 : : : (gdb) bt #0 0x60000000cd762860:0 in os::Hpux::get__lwFastHighResolutionTimer+0x100 () from /opt/java1.4/jre/lib/IA64N/server/libJava VM.so #1 0x60000000cd562a90:0 in Java VM_CurrentTimeMillis+0xe0 () from /opt/java1.4/jre/lib/IA64N/server/libJava VM.so #2 0x200000007a800950 in Java native_call_stub frame warning: The Unwind info header section .IA_64_unwind_hdr is missing Skipping this library /usr/lib/hpux32/libcl.so.1. () #3 0x200000007a867ff0 in compiled frame: java.lang.System::currentTimeMillis () ->long () #4 0x200000007a868c80 in compiled frame: MyLoop::method2 (int) ->void MyLoop::method1 () ->void () #5 0x200000007a8683e0 in i2c_adapter frame () #6 0x200000007a80da10 in interpreted frame: MyLoop::method1 () ->void () #7 0x200000007a802f10 in interpreted frame: MyLoop::main (java.lang.String[]) ->void () #8 0x200000007a800380 in Java entry frame () #9 0x60000000cd448280:0 in JavaCalls::call_helper+0x2c0 () from /opt/java1.4/jre/lib/IA64N/server/libJava VM.so #10 0x60000000cd762740:0 in os::os_exception_wrapper+0x40 () from /opt/java1.4/jre/lib/IA64N/server/libJava VM.so #11 0x60000000cd446e60:0 in JavaCalls::call+0x90 () from /opt/java1.4/jre/lib/IA64N/server/libJava VM.so #12 0x60000000cd46dc70:0 in jni_invoke_static+0x6e0 () from /opt/java1.4/jre/lib/IA64N/server/libJava VM.so #13 0x60000000cd4ac7d0:0 in jni_CallStaticVoidMethod+0x4e0 () from /opt/java1.4/jre/lib/IA64N/server/libJava VM.so #14 0x5fb0:0 in main+0x1ab0 ()
�@#7�ɂ���Java��MyLoop�N���X��main()���\�b�h��interpreted frame�ƕ\������Ă���Amain()���\�b�h���C���^�v���^�Ŏ��s���Ă��邱�Ƃ�������܂��B
�@#5��i2c_adapter�́A�C���^�v���^�Ŏ��s����Ă��������R���p�C������Ă�������Ăяo���ۂɌĂ��A�_�v�^���ŁA�\������Ă͂��܂��Ac2i_adapter�̓R���p�C�����ꂽ������C���^�v���^�Ŏ��s���������Ăяo���A�_�v�^���ł��B�����A�_�v�^�͎�ɌĂяo�����̈����̏��Ԃ�ύX���܂��B#6��#5�Ɠ��l�A#4���Ăяo�����߂̃X�^�u�I�Ȗ��������܂��B
�@#4��compiled frame�ƕ\������Ă���AJava��MyLoop�N���X��method1()���\�b�h��method2()���\�b�h�̃R���p�C�����ꂽ�l�C�e�B�u�R�[�h�����s����Ă��܂��B2�̃��\�b�h��1�̃t���[���ɕ\������Ă���̂�method2()��method1()�ɃC�����C���W�J����Ă��邱�Ƃ������Ă��܂��B#3�����l�ɃR���p�C�����ꂽ���\�b�h�̃t���[���ł��B
�@#2�̓l�C�e�B�u���\�b�h���Ăяo�����߂̃X�^�u�ŁA#1��#0�ł̓l�C�e�B�u���\�b�h�����s���Ă��܂��B
�@������Java VM�ł�Java VM�����ŃX���b�h�@�\�����[�U�[���x���X���b�h�Ƃ��Ēigreen_thread�j����̂�����܂������AHotSpot VM�ł́A1��Java�X���b�h�͂���Java VM�̉��œ��삷��OS�̃X���b�h�ɑΉ����܂��inative_thread�j�BUNIX�ł���AJava�v���O�������s����SIGQUIT�𑗂��āAWindows�ł���^�[�~�i�����ctrl-break�L�[�ɂ��X���b�h�̃_���v��\�������邱�Ƃ��ł��܂��B
�@�X�^�b�N�̓X���b�h���Ƃɑ��݂��܂��B�����̃X���b�h��2�̃O���[�v�ɕ����邱�Ƃ��ł��܂��B1��Java�X���b�h�ŁA����1��Java�V�X�e���X���b�h�ł��i�}8�Q���j�BJava�X���b�h��Java�̃A�v���P�[�V���������s���Ă���X���b�h�ł����AJava�V�X�e���X���b�h��Java�̎��s������܂��B�C���^�v���^�Ŏ��s�������̃X�^�b�N�t���[���݂̂́A�l�C�e�B�u�R�[�h�p�Ɍ��߂��Ă���R�[�����O�R���x���V�����i���Ăяo���K���j�ƈقȂ�t���[���t�H�[�}�b�g�ɂȂ�܂��B���X�g1�Ŏ�����Java�X���b�h�̃X�^�b�N�g���[�X��́A�}8��stack1�ɓ�����܂��BJava�X���b�h�̃X�^�b�N�̃T�C�Y�́A-Xss�I�v�V�����Ŏw�肷�邱�Ƃ��ł��܂��B���̃T�C�Y���ăX�^�b�N��L����Java�� StackOverflowException ���ʒm����܂��B
�@Java�V�X�e���X���b�h�ɂ́AThreadHelper�AVMThread�AReferenceHandler�AFinalizer�AWatcherThread�ASuspendCheckerThread�ASignalDispatcher�ACompilerThread�Ȃǂ�����܂��B���̒��ł�ReferenceHandler��Finalizer��Java�Ŏ�������Ă���A�}8��stack3�ɓ�����܂��B
Copyright © ITmedia, Inc. All Rights Reserved.