Java Performance Fundamental 세미나 교재입니다
2장은 JVM의 메모리 구조인 Runtime Data Areas에 대한 설명을 하고 있습니다. 크게는4개의 모듈로 나누어 지는 Runtime Data Areas를 부분 별로 자세히 다루고 있습니다. 그리고 나서 우리가 프로그램을 수행할 때 Runtime Data Areas에서는 어떻게 데이터들이 움직이는 지를 간단한 예제를 통해 알아보고자 합니다.
* Runtime Data Areas의 구조
* PC Register
* Java Virtual Machine Stacks
* Native Method Stack
* Method Area
* Java Heap
* Runtime Data Areas Simulation
Java Performance Fundamental 세미나 교재입니다. 3장은 Garbage Collection에 대해 설명하고 있습니다. 먼저 JVM에서 사용하는 Garbage Collection 뿐만 아니라 일반적인 Garbage Collection의 Algorithm을 상세히 알아봅니다. 그 후 Hotspot JVM의 Heap구조와 Garbage Collector를 설명하고 Generation별로 어떻게 동작하는 지에 대해 설명합니다. 이어 IBM JVM에 대한 Heap 구조와 Garbage Collector에 대해서도 설명합니다.
* Garbage Collection 이란?
* Garbage Collection 의 대상
* Garbage Collection 의 기본 Algorithm
* Hotspot JVM의 Garbage Collection
o Serial Collector
o Incremental Collector
o Parallel Collector
o CMS Collector
o Parallel Compaction Collector
o Garbage First Collector
* IBM JVM의 Garbage Collection
o Optimize for Throughput Collector
o Optimize for Pause Time Collector
o Generational Concurrent Collector
o Subpool Collector
Java Performance Fundamental 세미나 교재입니다. 4장은 Class Loader를 다루고 있습니다. Class Loader란 무엇이고 Class가 어떻게 JVM안으로 들어와 메모리의 일부로 동작하는지에 대해 상세하게 설명하고 있습니다. 그리고 Java 5에서 새로 소개된 Class Sharing에 대해서도 다루고 있습니다.
* Class Loader
o Namespace
o Class Loader Delegation Model
o Class Sharing
* Class Loader Work
o Loading
o Linking
o Initialization
All the fundamental concepts and tools for understanding performance tuning in Java. Garbage collection, memory management and collector types and tools for profiling Java applications.
It is easy to monitor the performance of JVM if one knows how GC and Threads work in JVM. This presentation throws light on Collector types, HotSpot Collection Algorithms, Thread Monitoring, Method Profiling and Heap Profiling
Java Performance Fundamental 세미나 교재입니다. 3장은 Garbage Collection에 대해 설명하고 있습니다. 먼저 JVM에서 사용하는 Garbage Collection 뿐만 아니라 일반적인 Garbage Collection의 Algorithm을 상세히 알아봅니다. 그 후 Hotspot JVM의 Heap구조와 Garbage Collector를 설명하고 Generation별로 어떻게 동작하는 지에 대해 설명합니다. 이어 IBM JVM에 대한 Heap 구조와 Garbage Collector에 대해서도 설명합니다.
* Garbage Collection 이란?
* Garbage Collection 의 대상
* Garbage Collection 의 기본 Algorithm
* Hotspot JVM의 Garbage Collection
o Serial Collector
o Incremental Collector
o Parallel Collector
o CMS Collector
o Parallel Compaction Collector
o Garbage First Collector
* IBM JVM의 Garbage Collection
o Optimize for Throughput Collector
o Optimize for Pause Time Collector
o Generational Concurrent Collector
o Subpool Collector
Java Performance Fundamental 세미나 교재입니다. 4장은 Class Loader를 다루고 있습니다. Class Loader란 무엇이고 Class가 어떻게 JVM안으로 들어와 메모리의 일부로 동작하는지에 대해 상세하게 설명하고 있습니다. 그리고 Java 5에서 새로 소개된 Class Sharing에 대해서도 다루고 있습니다.
* Class Loader
o Namespace
o Class Loader Delegation Model
o Class Sharing
* Class Loader Work
o Loading
o Linking
o Initialization
All the fundamental concepts and tools for understanding performance tuning in Java. Garbage collection, memory management and collector types and tools for profiling Java applications.
It is easy to monitor the performance of JVM if one knows how GC and Threads work in JVM. This presentation throws light on Collector types, HotSpot Collection Algorithms, Thread Monitoring, Method Profiling and Heap Profiling
2018 Jul 25th LINE Developer Meetup #41 in Fukuoka
Session Slide in English / セッションスライドです。
Graal in GraalVM - A New JIT Compiler
オラクル社からGraalVMというものが発表され、話題を呼んでいます。GraalVMはHotSpot VM上に新しいJITコンパイラGraalと言語実装用フレームワーク/ASTインタプリタであるTruffle、さらにネイティブイメージ作成機能とその実行に使われるSubstrateVMを併せ持ったものです。すでにTruffleを使用したJavaScriptやRuby、R、Pythonの実装も提供されており、これらの言語とJavaはコードから相互に呼び出しができます。このセッションではGraalVMを概観したあと、JITコンパイラGraalにとくに注力して解説します。GraalとTruffleはOracle Labsとヨハネス・ケプラー大学で共同研究されており、多くの論文が発表されています。HotSpotのJITコンパイラとパフォーマンスや構造などを比較しつつ、GraalのJITコンパイルのテクニックについてもいくつか触れます。とにかく、私がGraalをとても好きなのです。デモも実施しつつ、Graalのすごさを伝えられればと考えています。
Java EE 8 Overview (Sept 2015). A lot of work is already done by the Expert Groups so lets have a brief look for what we can expect in the some areas.
- Servlet 4 will embrace the new HTTP/2 protocol.
- JSON-B will bring the same high level features of JAXB to the JSON data format.
- Server-Sent Events(SSE) is the WebSocket variant where you only send data from the server to the client.
- MVC will be the Action based MVC complement of the Component based MVC of JSF.
- Some major restructuring of CDI so that we can use it standardised in Java SE to mention one thing.
The Java EE security API will be covered in more detail. Security related things became old and dusty and needs to move away from proprietary configuration to be able to make the transition to the cloud. An introduction to JSR 375 is given, which promotes self-contained application portability across Java EE servers, and promotes the use of modern programming concepts such as Expression Language, and CDI. It will holistically attempt to simplify, standardize, and modernize the Security API across the platform in areas identified by the community.
This session will address the business aspect of BPM as well as the technical aspects. How will BPM make your organization run more efficiently? Activiti improves the collaboration between business and IT. What is BPMN 2.0 and what can you do with it? The second part of this session is more concrete and will include some demonstrations, including; How to get your first process running. How did we make BPMN 2.0 developer-friendly? How to embed Activiti into your application?
Memory Management: What You Need to Know When Moving to Java 8AppDynamics
This presentation will compare and contrast application behavior in Java 7 with Java 8, particularly focusing on memory management and usage. Several code examples are presented to show how to recognize and respond to common pitfalls.
Spring Framework Petclinic sample applicationAntoine Rey
Spring Petclinic is a sample application that has been designed to show how the Spring Framework can be used to build simple but powerful database-oriented applications.
The fork named Spring Framework Petclinic maintains a version both with a plain old Spring Framework configuration and a 3-layer architecture (i.e. presentation --> service --> repository).
"손코딩뇌컴파일눈디버깅" 모임을 소개합니다.
백문이 불여일런, 트라이얼앤에러(Trial and Error) 식의 몹쓸 교육을 받아 온 개발자들이 코딩하기 전에 신중하고 꼼꼼하게 생각해보기란 쉽지 않습니다.
개발 시간 중 디버깅 시간이 절반 이상을 차지하고 있는 실정에 버그를 줄이기 위해 TDD니 유닛테스트니 많은 방법들이 개발되고 있지만 가장 일차적으로 중요한 것은 개발자들이 꼼꼼히 따져보는 것이 아니겠는지요?
미국의 선진 SW회사들은 이미 화이트보드에 PS문제를 푸는 것을 인터뷰 방식으로 채택하고 있습니다. 이는 이와 같은 풀이 방식이 개발자들의 기본 역량을 측정하기에 알맞은 지표라는 것이고, 개발자들이 기본적으로 갖춰야 할 역량이기도 하다는 것 입니다.
또한 자신의 생각을 명확하게 정리하고 다른 사람이 이해할 수 있도록 전달하는 Communication Skill 도 개발자가 갖춰야 할 역량 중 하나 입니다. 알고리즘을 어떻게 구현할 것인가를 팀원들과 소통하면서 자연스럽게 생각을 정리하고 전달하는 연습도 할 수 있습니다.
컴퓨터에 앉아 코딩하기 전 펜과 종이를 들고 눈과 머리와 손을 굴려 보시는 것은 어떠신지요??
빅데이터를 데이터 그 자체로 인식하는 오해가 존재한다. 그 이유는 아마도 빅데이터를 설명할 때 데이터의 속성을 가지고 설명하기 때문이라 생각한다.
하지만 빅데이터로 분류할 수 있는 데이터는 사실상 존재하지 않는다. 크다는 것, 비정형이라는 것 모두 상대적인 개념이기 때문이다.
빅데이터는 데이터 그 자체가 아니라 데이터를 가지고 무엇을 할 수 있는가에 초점이 맞추어져야 한다. 데이터를 기반하여 앎의 기초를 다지고 데이터로 자신의 생각을 증명하며 데이터에서 못 보던 무언가를 보는 것 이러한 것들이 빅데이터라 생각한다.
빅데이터 Myth 첫 번째로 이러한 오해를 깨고자 한다.
2018 Jul 25th LINE Developer Meetup #41 in Fukuoka
Session Slide in English / セッションスライドです。
Graal in GraalVM - A New JIT Compiler
オラクル社からGraalVMというものが発表され、話題を呼んでいます。GraalVMはHotSpot VM上に新しいJITコンパイラGraalと言語実装用フレームワーク/ASTインタプリタであるTruffle、さらにネイティブイメージ作成機能とその実行に使われるSubstrateVMを併せ持ったものです。すでにTruffleを使用したJavaScriptやRuby、R、Pythonの実装も提供されており、これらの言語とJavaはコードから相互に呼び出しができます。このセッションではGraalVMを概観したあと、JITコンパイラGraalにとくに注力して解説します。GraalとTruffleはOracle Labsとヨハネス・ケプラー大学で共同研究されており、多くの論文が発表されています。HotSpotのJITコンパイラとパフォーマンスや構造などを比較しつつ、GraalのJITコンパイルのテクニックについてもいくつか触れます。とにかく、私がGraalをとても好きなのです。デモも実施しつつ、Graalのすごさを伝えられればと考えています。
Java EE 8 Overview (Sept 2015). A lot of work is already done by the Expert Groups so lets have a brief look for what we can expect in the some areas.
- Servlet 4 will embrace the new HTTP/2 protocol.
- JSON-B will bring the same high level features of JAXB to the JSON data format.
- Server-Sent Events(SSE) is the WebSocket variant where you only send data from the server to the client.
- MVC will be the Action based MVC complement of the Component based MVC of JSF.
- Some major restructuring of CDI so that we can use it standardised in Java SE to mention one thing.
The Java EE security API will be covered in more detail. Security related things became old and dusty and needs to move away from proprietary configuration to be able to make the transition to the cloud. An introduction to JSR 375 is given, which promotes self-contained application portability across Java EE servers, and promotes the use of modern programming concepts such as Expression Language, and CDI. It will holistically attempt to simplify, standardize, and modernize the Security API across the platform in areas identified by the community.
This session will address the business aspect of BPM as well as the technical aspects. How will BPM make your organization run more efficiently? Activiti improves the collaboration between business and IT. What is BPMN 2.0 and what can you do with it? The second part of this session is more concrete and will include some demonstrations, including; How to get your first process running. How did we make BPMN 2.0 developer-friendly? How to embed Activiti into your application?
Memory Management: What You Need to Know When Moving to Java 8AppDynamics
This presentation will compare and contrast application behavior in Java 7 with Java 8, particularly focusing on memory management and usage. Several code examples are presented to show how to recognize and respond to common pitfalls.
Spring Framework Petclinic sample applicationAntoine Rey
Spring Petclinic is a sample application that has been designed to show how the Spring Framework can be used to build simple but powerful database-oriented applications.
The fork named Spring Framework Petclinic maintains a version both with a plain old Spring Framework configuration and a 3-layer architecture (i.e. presentation --> service --> repository).
"손코딩뇌컴파일눈디버깅" 모임을 소개합니다.
백문이 불여일런, 트라이얼앤에러(Trial and Error) 식의 몹쓸 교육을 받아 온 개발자들이 코딩하기 전에 신중하고 꼼꼼하게 생각해보기란 쉽지 않습니다.
개발 시간 중 디버깅 시간이 절반 이상을 차지하고 있는 실정에 버그를 줄이기 위해 TDD니 유닛테스트니 많은 방법들이 개발되고 있지만 가장 일차적으로 중요한 것은 개발자들이 꼼꼼히 따져보는 것이 아니겠는지요?
미국의 선진 SW회사들은 이미 화이트보드에 PS문제를 푸는 것을 인터뷰 방식으로 채택하고 있습니다. 이는 이와 같은 풀이 방식이 개발자들의 기본 역량을 측정하기에 알맞은 지표라는 것이고, 개발자들이 기본적으로 갖춰야 할 역량이기도 하다는 것 입니다.
또한 자신의 생각을 명확하게 정리하고 다른 사람이 이해할 수 있도록 전달하는 Communication Skill 도 개발자가 갖춰야 할 역량 중 하나 입니다. 알고리즘을 어떻게 구현할 것인가를 팀원들과 소통하면서 자연스럽게 생각을 정리하고 전달하는 연습도 할 수 있습니다.
컴퓨터에 앉아 코딩하기 전 펜과 종이를 들고 눈과 머리와 손을 굴려 보시는 것은 어떠신지요??
빅데이터를 데이터 그 자체로 인식하는 오해가 존재한다. 그 이유는 아마도 빅데이터를 설명할 때 데이터의 속성을 가지고 설명하기 때문이라 생각한다.
하지만 빅데이터로 분류할 수 있는 데이터는 사실상 존재하지 않는다. 크다는 것, 비정형이라는 것 모두 상대적인 개념이기 때문이다.
빅데이터는 데이터 그 자체가 아니라 데이터를 가지고 무엇을 할 수 있는가에 초점이 맞추어져야 한다. 데이터를 기반하여 앎의 기초를 다지고 데이터로 자신의 생각을 증명하며 데이터에서 못 보던 무언가를 보는 것 이러한 것들이 빅데이터라 생각한다.
빅데이터 Myth 첫 번째로 이러한 오해를 깨고자 한다.
Functions in Objective-C and C ProgrammingPaul Solt
Course Link: http://skl.sh/11kA0im
Website: http://iPhoneDev.tv
Learn about functions which allow you to organize your code into chunks. Functions allow you to delegate work between different blocks of code.
Reversing & Malware Analysis Training Part 4 - Assembly Programming Basicssecurityxploded
This presentation is part of our Reverse Engineering & Malware Analysis Training program.
For more details refer our Security Training page
http://securityxploded.com/security-training.php
Build a full-functioned virtual machine from scratch, when Brainfuck is used. Basic concepts about interpreter, optimizations techniques, language specialization, and platform specific tweaks.
Hat Secure Training
By Danang Heriyadi.
[SHARE] Courses Linux Exploit Research 2012
- Purpose of the Course
- Introducing Vulnerability Software
- Register Processor
- Intruksi Assembly
- Buffer Overflows
- Shellcode
- Exploit
- Stack & Heap
- Basic Buffer Overflow
- Basic Stack Overflows with Linux
- Smashing stack for fun and profit
- Basic shellcode development
- DTORS Exploitation
- Heap corruption and exploitation
Register :
http://hatsecure.com/exploit
Java Performance Fundamental 세미나 자료입니다. 6장은 Thread Synchronization를 다루고 있습니다. 여기서는 Java에서 Thread라는 것은 어떻게 관리되어 왔으며 동기화는 어떤 역할을 하는지를 설명합니다. 더 나아가 JVM의 버전이 올라가면서 추가된 Hotspot JVM의 Biased Lock이나 IBM JVM의 Lock Reservation에 대해서도 설명하고 있습니다.
* Java의 Thread
* Java Synchronization
* Hotspot JVM Synchronization
* IBM JVM Synchronization
Java Performance Fundamental 세미나 교재입니다. 5장은 Execution Engine에 대한 내용을 다루고 있습니다. Class파일에 저장되어 있는 Bytecode를 해석하는 방법을 JIT Compiler와 Hotspot Compiler의 동작과정을 통해 자세히 알아봅니다.
* Execution Engine
* IBM JIT Compiler
* Hotspot Compiler
Srihitha Technologies provides Java Training in Ameerpet by real time Experts. For more information about Java training in Ameerpet call 9394799566 / 9290641808.
Srihitha Technologies provides Java Online Training in Ameerpet by real time Experts. For more information about Java online training in Ameerpet call 9885144200 / 9394799566.
JRuby is Ruby for the JVM, right? But what does that really mean? What do you get out of the deal?
We'll explore what makes JRuby unique among Ruby implementations, and why the JVM is a Rubyist's dream come true. Using JRuby means you have the best GC, real threads, easy and scalable deployment, high performance, no-compile cross-platform libraries, and the best monitoring and profiling tools of any VM. And you get it all without leaving Ruby behind. If you're not using JRuby already, this talk will convince you to give it a try.
Konferencija Javantura Zagreb 2014 by HUJAK
Java 8 JavaScript – Nashorn by Miroslav Rešetar
Java 8 donosi podršku za scripting u JavaScriptu. Engine se zove Nashorn (openjdk.java.net/projects/nashorn) i nasljednik je popularnog Rhino engine-a. Za razliku od starijeg Rhino-a, Nashorn koristi invoke dynamic Java 7 mehanizam što mu omogućava puno bolje performanse. Nashorn je moderni engine, usklađen sa ECMAScript 5.1 standardom. To omogućava uporabu popularnih JavaScript biblioteka iz Java programa što otvara neke sasvim nove načine kako implementiramo naša Java rješenja. Prezentacija ima za cilj upoznati Java developera s mogućnostima integracije JavaScript-a u buduća Java 8 rješenja.
Srihitha Technologies provides J2EE Online Training in Ameerpet by real time Experts. For more information about J2EE online training in Ameerpet call 9885144200 / 9394799566.
Srihitha Technologies provides Testing Tools Training in Ameerpet by real time Experts. For more information about Testing Tools training in Ameerpet call 9394799566 / 9290641808.
Java Performance Fundamental 세미나 교재입니다. 7장은 처음에는 JDBC에 대한 얘기로 시작하고 있습니다. 그리고 Oracle JDBC Driver에 대한 설명을 진행하고 여러 Oracle JDBC Driver 중 성능의 차이를 테스트를 통해 알아보게 됩니다. 그리고 Oracle에서 SQL이 수행될 때 Oracle 내부에서는 어떠한 일이 벌어지는지를 살펴보고, Java에서 SQL을 수행할 때와 어떤 차이가 있는지를 테스트를 통해 비교해 본다. 그리고 나서 JDBC에서 제공하는 여러 튜닝 기능이 어떻게 성능에 영향을 주게 되는지를 테스트합니다. 이를 통해 이 기능들이 어느 부분에 얼마만큼의 성능 개선을 하게 되는 지를 실감할 수 있게 됩니다.
* JDBC Overview
* Oracle JDBC Driver
* Java SQL Execution
* Java SQL Performance
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
2장. Runtime Data Areas
1. Java Performance
artdb@ex-em.com | performeister.tistory.com | twitter @novathinker
Runtime Data Areas
2. Java Performance
2
artdb@ex-em.com | performeister.tistory.com | twitter @novathinker
1) Runtime Data Area
2) PC Register
3) Java Stacks
4) Method Area
5) Java Heap
6) Native Method Stacks
7) Runtime Memory
3. Java Performance
3
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Runtime Data Area
•Runtime Data Area
Class libraries Class loader Class files
subsystem
Java Stacks
Method Area Heap Pc Registers
Native Method Stacks
runtime data areas
native
Execution native method interface method
engine libraries
4. Java Performance
4
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
PC register
•PC Register
Thread PC register (Program Counter)
Start Create
Java Method Call { … } Native Pointer
or
Current Instruction
Address
(native pointer or method bytecode
Native Method Call undefined
13. Java Performance
9
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Java Virtual Machine Stacks
• Stack Frame
– Local Variable Section
0 reference hidden this
1 int int a
2 int char b
class JvmInternal {
3 long c
public int testMethod (int a, char b, long
long c, float d, Object e, double f,
String g, byte h, short i, boolean j) { 5 float float d
return 0; 6 reference Object e
}
7 double f
} double
9 reference String g
10 int byte h
11 int short i
12 int boolean j
14. Java Performance
10
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Java Virtual Machine Stacks
• Stack Frame
– Operand Stack
• Zero base Array
Operand Stack • Instruction pop
-JVM Work Space
• Push
• Data Type Local Variable
15. Java Performance
11
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Java Virtual Machine Stacks
public void operandStack();
class JvmInternal2 { Code:
public void operandStack() { 0: iconst_5
int a, b, c; 1: istore_1
a = 5; 2: bipush 6
b = 6; 4: istore_2
c = a + b; 5: iload_1
} 6: iload_2
} 7: iadd
8: istore_3
9: return
istore_1istore_2iload_1 iload_2 iadd istore_3
6
Operand Stack
5 5 11
int c 3 11
Local
Variable int b 2 6 6 6 6 6
Section
int a 1 5 5 5 5 5 5
hidden this ref 0 ref ref ref ref ref ref
16. Java Performance
12
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Java Virtual Machine Stacks
• Stack Frame
– Frame Data
Frame Data
-Constant pool
Resolution
-Normal Method Return
-Exception Dispatch
17. Java Performance
12
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Java Virtual Machine Stacks
• Stack Frame
• Constant Pool Entry
– Frame Data
• Constant Pool
Symbolic Reference
Frame Data
-Constant pool
Resolution
-Normal Method Return
-Exception Dispatch
18. Java Performance
12
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Java Virtual Machine Stacks
• Stack Frame
• Constant Pool Entry
– Frame Data
• Constant Pool
Symbolic Reference
Frame Data
-Constant pool
Resolution
-Normal Method Return
-Exception Dispatch
• Method stack frame
pc
register instruction
pointer
•
operand stack push
19. Java Performance
12
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Java Virtual Machine Stacks
• Stack Frame
• Constant Pool Entry
– Frame Data
• Constant Pool
Symbolic Reference
Frame Data
-Constant pool
Resolution
-Normal Method Return
-Exception Dispatch
• Method stack frame • Exception
pc
Frame Data Exception Table
register instruction
pointer
•
operand stack push
20. Java Performance
13
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Java Virtual Machine Stacks
• Stack Frame
– Frame Data
public void operandStack();
Code:
0: iconst_5
class JvmInternal2 { 1: istore_1
public void operandStack() { 2: bipush 6
int a, b, c; 4: istore_2
a = 5; 5: iload_1
b = 6; 6: iload_2
try { 7: iadd
c = a + b; 8: istore_3
} 9: goto 16
catch (NullPointerException e) { 12: astore 4
c = 0; 14: iconst_0
} 15: istore_3
} 16: return
} Exception table:
from to target type
5 9 12 Class java/lang/
NullPointerException
28. Java Performance
15
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Method Area
•Method Area
JVM • Class Loader Load Type
Method Area • JVM
• Thread
Class
Data • Class file type
Class
Data Method Area
Class • GC
Data • Method Area Vendor
Class
Data Sun Permanent Area
Generation Heap
Share
Thread Thread IBM Heap
Thread
29. Java Performance
16
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Method Area
Type Information
Constant Pool
Class metadata
in Field Information
Method Area
Method Information
Class Variables
Reference to ClassLoader
class
Reference to Class class
30. Java Performance
17
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Method Area
• Type Information
Type Information
• Type (Package + Class )
• Type Superclass
(Type interface java.lang.object class superclass
)
• Type class interface
• Type modifier (public, abstract, final)
• interface ( )
31. Java Performance
17
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Method Area
• Type Information
Type Information
• Type (Package + Class )
• Type Superclass
(Type interface java.lang.object class superclass
)
• Type class interface
• Type modifier (public, abstract, final)
• interface ( )
Type Java Class, Interface
Java Class File Java Type Standard Binary
Format
32. Java Performance
18
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Method Area
• Constant Pool
• Constant Pool Type Constant Ordered Set
• Literal Constant, Type, Field, Method Symbolic
Reference
• Constant Pool Entry Array index
• Type Type, Method, Field Symbolic
Reference Dynamic Linking
33. Java Performance
19
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Method Area
• Field Information
Field Member Variable, Class Variable
Type Field
Field Information
• Field
• Field Type
• Field Modifier
(public, private, protected, static, final, volatile, transient)
34. Java Performance
20
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Method Area
• Method Information
Type Method
Method
Method Information
• Method
• Method Return Type (or void)
• Method Parameter Type ( )
• Method Modifier
(public, private, protected, static, final,
syncronized, native, abstract)
35. Java Performance
20
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Method Area
• Method Information
Type Method
Method
Method Information
Native or abstract
• Method
• Method bytecode
• Method Return Type (or void)
• Method Stack Frame
• Method Parameter Type ( )
Operand Stack Local
• Method Modifier
variable Section
(public, private, protected, static, final,
• Exception Table
syncronized, native, abstract)
36. Java Performance
21
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Method Area
• Class Variable
Class Variable
Class
• Class = Static
• instance Instance
• Instance Class
Instance S
ha
re • Class
Instance
Instance
• Final Class
Constant Pool
Instance
37. Java Performance
22
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Method Area
• Reference to class ‘ClassLoader’
Reference ClassLoader class
• Type Type JVM ClassLoader
• Type Classloader
• User-Defined Classloader reference
• Bootstrap Classloader null
• JVM Dynamic Linking Class
Classloader Load
38. Java Performance
23
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Method Area
• Reference to class ‘Class’
java.lang.class
Reference class
• Type load java.lang.class instance
• getClass, forClass, isInterface Method Reference
39. Java Performance
24
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Method Area
• Method Table
Method Area • Class Method direct
Class reference
• Method
Method Table • Method
• Type interface abstract class
Method class
• Class Method
Field superclass Method
Constant reference
Pool
• Class Loading
40. Java Performance
25
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Method Area
• Method Table
Class A
Class A {
void a1() {…} 1 direct reference of a2()
int a2() {…} 0 direct reference of a1()
}
Class B extends A{
Class B
void a1() {…}
2 direct reference of b1()
char b1() {…}
1 direct reference of a2()
}
0 direct reference of a1()
41. Java Performance
26
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Method Area
• Method Table
Heap
Class A { Class B extends A{
void a1() {…} void a1() {…}
int a2() {…} char b1() {…} B instance1
} }
Method Area A instance2
Class B
…
2 direct reference of b1()
1 direct reference of a2() bi
0 direct reference of a1()
48. Java Performance
33
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Java Heap
• IBM JVM Heap Layout
– Large Object Area
• Large Object
• 64KB Object
• Heap
• -Xloratio LOA
(0.5 ~ 0.95 )
• 1MB Object
49. Java Performance
34
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Java Heap
• IBM JVM Heap Layout
– Heap
Garbage Object Live Object
50. Java Performance
35
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Java Heap
• IBM JVM Heap Layout
– Sub pool
• Java 1.4
• 16 Core SMP Allocation
• Free Chunk FreeList
51. Java Performance
36
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Java Heap
• IBM JVM Heap Layout
– Sub Pool
Pool
1 Small Size Freelist Middle Size Freelist
2
3
4
5
…
Large Size Freelist
n
52. Java Performance
37
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Java Heap
• IBM JVM Heap Layout
– Java 5 Heap
– Heap Generational Heap
– -Xgcpolicy: gencon
Allocation Space Survivor Space Tenured Space
Nursery Tenured
53. Java Performance
38
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Java Heap
• Hotspot JVM Object Layout
• Object Mark Word,
Class Address
Mark Word
Class Address
Object Data
Header
• Array Size
Header !
Class Address
Mark Word
Array Size
• Header 1 Word
Array Data
1Word = 4bytes(32bit)
8bytes(64bit)
54. Java Performance
39
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Java Heap
• Hotspot JVM Object Layout
– Mark Word : Garbage Collection, Synchronization
Hash Code (0)
Mark Word Thread ID (1) Age Biased Tag
23 bit 6 bit 1 bit 2 bit
Hash Code (0)
Age Biased Tag Biased bit Tag
Thread ID (1)
0 01 Unlocked
(000) Lock Record Address 0 00 Light-weight locked
(010) Monitor Address 0 10 Heavy-weight locked
0 11 Marked for GC
(011) Forwarding Address 1 01 Biased / Biasable
55. Java Performance
40
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Java Heap
• Hotspot JVM Object Layout
Class Address
Method Area Object Class Reference
Array Size
Array Object
Array Data
56. Java Performance
41
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Java Heap
• IBM JVM Object Layout
– Object Array
– header 1 Word
Garbage Collection
(2bits) bit (2bits)
Pinned
Size+Flags Object Size G P
mptr Class pointer or array size
Thread Index Count
Array bit (1bit)
locknflags S H T A
Monitor Index
Type(5bits)
Monitor Shape bit
Object Data Hash code state (2bits)
(1bit)
Hash code
57. Java Performance
42
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Java Heap
• IBM JVM Object Layout
– Size+Flag
• 28 Bits : Object Size
• 2 Bits : Multipinned Bit,
Garbage Collection - Compaction
Swapped Bit
• Pinned Bit : 1 Bit
• Dosed Bit : 1 Bit
Garbage Collection (2bits)
Object Size G P Pinned bit (2bits)
59. Java Performance
44
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Java Heap
• IBM JVM Object Layout
– locknflags : lock
– 1 word
– Fat Lock Monitor Index 23 bits
– Thin Lock 15 Bits Thread Index, 8 bits count
– 5 Bits Lock
Thread Index Count
Array bit (1bit)
locknflags S H T A
Monitor Index
Type(5bits)
Monitor Shape bit
(1bit) Hash code state (2bits)
60. Java Performance
45
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Java Heap
• IBM JVM Object Layout (Java 5~)
– header 1 Word
Lock word
VTable
Object Data
Lock word
Array Size
VTable
Array Data
61. Java Performance
46
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Java Heap
• IBM JVM Object Layout (Java5 ~)
– Vtable Pointer
– Vtable Object Information Table Pointer
Object Information
• Debug Data
VTable OI • Class name
• Object Type (Array,
Object)
• Reference field
• Object Size
Array Element
• Offset Information
62. Java Performance
47
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Java Heap
• IBM JVM Object Layout (Java5 ~)
– Lock Word
– 1 bit : Object on Fat Lock
– Fat Lock : 20 bits Monitor Index
– Reserved Mode : Thread ID (15 bits), Count(5 bits)
– Reserved Mode Locked 1
– Garbage Collector Hash Code (10 bits)
Recursion Count (5
bits)
Thread ID (15 bits) Count Hash Code
0 1 (10 bits)
Monitor index (20 bits)
Contention Bit (1bit) Reservation Bit (1bit)
63. Java Performance
48
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Java Heap
• Array in Heap
– Array Object Heap
– Array Array Class instance
– Type Array Class data
– Array Instance data
– Array Array Array
– Class Data Naming Convention
• ‘[‘ Type Description String
64. Java Performance
49
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Java Heap
• Array in Heap
– Type Description String
Descriptor Type Array Class Data
B Byte byte[] [B
C Char char[][] [[C
D Double double[] [D
F Float float[][] [[F
I Int int[][][] [[[I
J Long long[] [J
S Short short[][] [[S
Z Boolean boolean[][][] [[[Z
L Object java.lang.String[] [Ljava/lang/String
65. Java Performance
50
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Java Heap
• Array in Heap
Java Heap
Class Data Pointer
Length (=2)
Class Data Pointer ar1[0][0] ( int )
ar1[0][1] ( int )
Length ( =2)
ar1[0] (array reference) Class Data Pointer
ar1[1] (array reference) Length (=2)
ar1[1][0] ( int )
ar1[1][1] ( int )
Method Area
ar1 Array Reference
Class Class
Data Data
int [][] ar1 = new int [2][2] [[I [I
66. Java Performance
51
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Runtime Memory
• Java Variables
– Class Variables
– Member Variables
– Parameter Variables
– Local Variables
D:EXEM>type VariableArrange.java
class VariableArrange {
static int ci = 3; // Class Variable
static String cs = "Static"; // Class Variable
int mi = 4; // Member Variable
String ms = "Member"; // Member Variable
void method(int pi, String ps) { // Parameter Variable
int li = 5; // Local Variable
String ls = "Local"; // Local Variable
}
}
67. Java Performance
52
Java Performance Fundamental | twitter @novathinker
Runtime Memory artdb@ex-em.com | performeister.tistory.com
Java Stack Java Heap Method Area
[Ljava/lang/String
VariableArrange Instance
method frame
VariableArrange
Local Variable mi = 4
ms = ref2 class
Field Information
3 ls=ref4 String Instance : ref1
“Static” Class Variable
2 li=5 ci 3
String Instance : ref2
“Member”
1 ps method informations
String Instance : ref3 VariableArrange();
0 pi void method(int, String);
static {};
String Instance : ref4
“Local” Constant Pool
int Integer …
69. Java Performance
54
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Runtime Memory
Source class JvmInternal { } bytecode
Java Stack Java Heap Method Area
JvmInternal frame
Frame Data JvmInternal
Instance
Operand Stack
JvmInternal class
Field Information
Local Variable Class Variable
main method
information
addTwoArgs method
information
Constant Pool
0 args fcv 100
70. Java Performance
55
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Runtime Memory
Source static int cv = 0; bytecode 0: iconst_0
Java Stack Java Heap Method Area
JvmInternal frame
Frame Data JvmInternal
Instance [Ljava/lang/String
Operand Stack
JvmInternal class
Field Information
Local Variable Class Variable
main method
Length = 2 information
addTwoArgs method
args[1] “20” information
args[0] “10” Constant Pool
0 args fcv 100
ICONST - Push value between -1, ..., 5, other values cause an exception
71. Java Performance
56
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Runtime Memory
Source static int cv = 0; bytecode 1: putstatic
Java Stack Java Heap Method Area
JvmInternal frame
Frame Data JvmInternal
Instance [Ljava/lang/String
Operand Stack
JvmInternal class
Field Information
Local Variable Class Variable
main method
Length = 2 information
addTwoArgs method
args[1] “20” information
args[0] “10” Constant Pool
0 args fcv 100
PUTSTATIC - Put static field in class #4; //Field cv:I
72. Java Performance
57
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Runtime Memory
Source JvmInternal(); bytecode 0: aload_0
Java Stack Java Heap Method Area
JvmInternal frame
Frame Data JvmInternal
Instance [Ljava/lang/String
Operand Stack
JvmInternal class
args Field Information
Class Variable
Local Variable
main method
Length = 2 information
addTwoArgs method
args[1] “20” information
args[0] “10” Constant Pool
0 args fcv 100
ALOAD - Load reference from local variable
73. Java Performance
58
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Runtime Memory
Source public static void main(java.lang.String[]); bytecode 1: invokespecial
Java Stack Java Heap Method Area
JvmInternal frame main frame
Frame Data Frame Data JvmInternal
Instance [Ljava/lang/String
Operand Stack Operand Stack
JvmInternal class
args Field Information
Local Variable Local Variable Class Variable
3 main method
Length = 2 information
2 addTwoArgs method
args[1] “20” information
1
args[0] “10” Constant Pool
0 args 0 args fcv 100
INVOKESTATIC - Invoke instance method; special handling for superclass, private and instance
initialization method invocations #1; //Method java/lang/Object."<init>":()V
74. Java Performance
59
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Runtime Memory
Source a = Integer.parseInt(args[0]); bytecode 0: aload_0
Java Stack Java Heap Method Area
main frame
Frame Data JvmInternal
Instance [Ljava/lang/String
Operand Stack
JvmInternal class
args Field Information
Local Variable Class Variable
3 main method
Length = 2 information
2 addTwoArgs method
args[1] “20” information
1
args[0] “10” Constant Pool
0 args fcv 100
ALOAD - Load reference from local variable
75. Java Performance
60
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Runtime Memory
Source a = Integer.parseInt(args[0]); bytecode 1: iconst_0
Java Stack Java Heap Method Area
main frame
Frame Data JvmInternal
Instance [Ljava/lang/String
Operand Stack
JvmInternal class
args[0] Field Information
Local Variable Class Variable
3 main Method
Length = 2 information
2 addTwoArgs method
args[1] “20” information
1
args[0] “10” Constant Pool
0 args fcv 100
ICONST - Push value between -1, ..., 5, other values cause an exception
76. Java Performance
61
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Runtime Memory
Source a = Integer.parseInt(args[0]); bytecode 2: aaload
Java Stack Java Heap Method Area
main frame
Frame Data JvmInternal
Instance [Ljava/lang/String
Operand Stack
JvmInternal class
“10”
args[0] Field Information
Local Variable Class Variable
3 main Method
Length = 2 information
2 addTwoArgs method
args[1] “20” information
1
args[0] “10” Constant Pool
0 args fcv 100
AALOAD - Load reference from array
77. Java Performance
62
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Runtime Memory
Source a = Integer.parseInt(args[0]); bytecode 3: invokestatic
Java Stack Java Heap Method Area
main frame
java/lang/Integer
Frame Data JvmInternal
Instance [Ljava/lang/String
Operand Stack
JvmInternal class
10 Field Information
Local Variable Class Variable
3 main Method
Length = 2 information
2 addTwoArgs method
args[1] “20” information
1
args[0] “10” Constant Pool
0 args fcv 100
INVOKESTATIC - Invoke a class (static) method
#2; //Method java/lang/Integer.parseInt:(Ljava/lang/String;)I
78. Java Performance
63
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Runtime Memory
Source a = Integer.parseInt(args[0]); bytecode 6: istore_1
Java Stack Java Heap Method Area
main frame
java/lang/Integer
Frame Data JvmInternal
Instance [Ljava/lang/String
Operand Stack
JvmInternal class
10 Field Information
Local Variable Class Variable
3 main Method
Length = 2 information
2 addTwoArgs method
args[1] 20 information
1 a=10
args[0] 10 Constant Pool
0 args fcv 100
ISTORE - Store int from stack into local variable
79. Java Performance
64
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Runtime Memory
Source b = Integer.parseInt(args[1]); bytecode 7: aload_0
Java Stack Java Heap Method Area
main frame
java/lang/Integer
Frame Data JvmInternal
Instance [Ljava/lang/String
Operand Stack
JvmInternal class
args Field Information
Local Variable Class Variable
3 main method
Length = 2 information
2 addTwoArgs method
args[1] “20” information
1 a=10
args[0] “10” Constant Pool
0 args fcv 100
ALOAD - Load reference from local variable
80. Java Performance
65
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Runtime Memory
Source b = Integer.parseInt(args[1]); bytecode 8: iconst_1
Java Stack Java Heap Method Area
main frame
java/lang/Integer
Frame Data JvmInternal
Instance [Ljava/lang/String
Operand Stack
JvmInternal class
args[1] Field Information
Local Variable Class Variable
3 main Method
Length = 2 information
2 addTwoArgs method
args[1] “20” information
1 a=10
args[0] “10” Constant Pool
0 args fcv 100
ICONST - Push value between -1, ..., 5, other values cause an exception
81. Java Performance
66
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Runtime Memory
Source b = Integer.parseInt(args[1]); bytecode 9: aaload
Java Stack Java Heap Method Area
main frame
java/lang/Integer
Frame Data JvmInternal
Instance [Ljava/lang/String
Operand Stack
JvmInternal class
“20”
args[1] Field Information
Local Variable Class Variable
3 main Method
Length = 2 information
2 addTwoArgs method
args[1] “20” information
1 a=10
args[0] “10” Constant Pool
0 args fcv 100
AALOAD - Load reference from array
82. Java Performance
67
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Runtime Memory
Source b = Integer.parseInt(args[1]); bytecode 10: invokestatic
Java Stack Java Heap Method Area
main frame
java/lang/Integer
Frame Data JvmInternal
Instance [Ljava/lang/String
Operand Stack
JvmInternal class
20 Field Information
Local Variable Class Variable
3 main Method
Length = 2 information
2 addTwoArgs method
args[1] “20” information
1 a=10
args[0] “10” Constant Pool
0 args fcv 100
INVOKESTATIC - Invoke a class (static) method
#2; //Method java/lang/Integer.parseInt:(Ljava/lang/String;)I
83. Java Performance
68
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Runtime Memory
Source b = Integer.parseInt(args[1]); bytecode 13: istore_2
Java Stack Java Heap Method Area
main frame
java/lang/Integer
Frame Data JvmInternal
Instance [Ljava/lang/String
Operand Stack
JvmInternal class
20 Field Information
Local Variable Class Variable
3 main Method
Length = 2 information
2 b=20 addTwoArgs method
args[1] 20 information
1 a=10
args[0] 10 Constant Pool
0 args fcv 100
ISTORE - Store int from stack into local variable
84. Java Performance
69
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Runtime Memory
Source c = addTwoArgs(a,b); bytecode 14: iload_1
Java Stack Java Heap Method Area
main frame
java/lang/Integer
Frame Data JvmInternal
Instance [Ljava/lang/String
Operand Stack
JvmInternal class
10 Field Information
Local Variable Class Variable
3 main Method
Length = 2 information
2 b=20 addTwoArgs method
args[1] 20 information
1 a=10
args[0] 10 Constant Pool
0 args fcv 100
ILOAD - Load int from local variable onto stack
85. Java Performance
70
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Runtime Memory
Source c = addTwoArgs(a,b); bytecode 15: iload_2
Java Stack Java Heap Method Area
main frame
java/lang/Integer
Frame Data JvmInternal
Instance [Ljava/lang/String
Operand Stack
JvmInternal class
20
10 Field Information
Local Variable Class Variable
3 main Method
Length = 2 information
2 b=20 addTwoArgs method
args[1] 20 information
1 a=10
args[0] 10 Constant Pool
0 args fcv 100
ILOAD - Load int from local variable onto stack
86. Java Performance
71
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Runtime Memory
Source c = addTwoArgs(a,b); bytecode 16:
Java Stack Java Heap Method Area
main frame addTwoArgs frame
java/lang/Integer
Frame Data Frame Data JvmInternal
Instance [Ljava/lang/String
Operand Stack main
ref JvmInternal class
20
10 Operand Stack Field Information
Local Variable Class Variable
3 main Method
Length = 2 information
Local Variable
2 b=20 addTwoArgs method
args[1] 20 information
1 a=10 1
args[0] 10 Constant Pool
0 args 0 fcv 100
INVOKESTATIC - Invoke instance method; special handling for superclass, private and instance
initialization method invocations #3; //Method addTwoArgs:(II)I
87. Java Performance
72
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Runtime Memory
Source static int addTwoArgs(int, int); bytecode 16:
Java Stack Java Heap Method Area
main frame addTwoArgs frame
java/lang/Integer
Frame Data Frame Data JvmInternal
Instance [Ljava/lang/String
Operand Stack main
ref JvmInternal class
20
10 Operand Stack Field Information
Local Variable Class Variable
3 main Method
Length = 2 information
Local Variable
2 b=20 addTwoArgs method
args[1] 20 information
1 a=10 1 20
args[0] 10 Constant Pool
0 args 0 10 fcv 100
INVOKESTATIC - Invoke instance method; special handling for superclass, private and instance
initialization method invocations #3; //Method addTwoArgs:(II)I
88. Java Performance
73
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Runtime Memory
Source cv = fcv ; bytecode 0: bipush
Java Stack Java Heap Method Area
main frame addTwoArgs frame
java/lang/Integer
Operand Stack Frame Data JvmInternal
Instance [Ljava/lang/String
main
ref JvmInternal class
ref
Operand Stack Field Information
Local Variable Class Variable
100
3 main Method
Length = 2 information
Local Variable
2 b=20 addTwoArgs method
args[1] 20 information
1 a=10 1 20
args[0] 10 Constant Pool
0 args 0 10 fcv 100
BIPUSH - Push byte on stack, (-128~127)
89. Java Performance
74
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Runtime Memory
Source cv = fcv ; bytecode 2: putstatic
Java Stack Java Heap Method Area
main frame addTwoArgs frame
java/lang/Integer
Frame Data Frame Data JvmInternal
Instance [Ljava/lang/String
Operand Stack main
ref JvmInternal class
ref
Operand Stack Field Information
Class Variable
Local Variable cv 100
100
3 main Method
Length = 2 information
Local Variable
2 b=20 addTwoArgs method
args[1] 20 information
1 a=10 1 20
args[0] 10 Constant Pool
0 args 0 10 fcv 100
PUTSTATIC - Put static field in class #4; //Field cv:I
90. Java Performance
75
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Runtime Memory
Source return ( x + y ); bytecode 5: iload_0
Java Stack Java Heap Method Area
main frame addTwoArgs frame
java/lang/Integer
Frame Data Frame Data JvmInternal
Instance [Ljava/lang/String
Operand Stack main
ref JvmInternal class
ref
Operand Stack Field Information
Local Variable Class Variable
10
3 main Method
Length = 2 information
Local Variable
2 b=20 addTwoArgs method
args[1] 20 information
1 a=10 1 20
args[0] 10 Constant Pool
0 args 0 10 fcv 100
ILOAD - Load int from local variable onto stack
91. Java Performance
76
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Runtime Memory
Source return ( x + y ); bytecode 6: iload_1
Java Stack Java Heap Method Area
main frame addTwoArgs frame
java/lang/Integer
Frame Data Frame Data JvmInternal
Instance [Ljava/lang/String
Operand Stack main
ref JvmInternal class
ref
Operand Stack Field Information
20
Local Variable Class Variable
10
3 main Method
Length = 2 information
Local Variable
2 b=20 addTwoArgs method
args[1] 20 information
1 a=10 1 20
args[0] 10 Constant Pool
0 args 0 10 fcv 100
ILOAD - Load int from local variable onto stack
92. Java Performance
77
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Runtime Memory
Source return ( x + y ); bytecode 7: iadd
Java Stack Java Heap Method Area
main frame addTwoArgs frame
java/lang/Integer
Frame Data Frame Data JvmInternal
Instance [Ljava/lang/String
Operand Stack main
ref JvmInternal class
ref
Operand Stack Field Information
Local Variable Class Variable
30
3 main Method
Length = 2 information
Local Variable
2 b=20 addTwoArgs method
args[1] 20 information
1 a=10 1 20
args[0] 10 Constant Pool
0 args 0 10 fcv 100
IADD - Add ints
93. Java Performance
78
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Runtime Memory
Source return ( x + y ); bytecode 8: ireturn
Java Stack Java Heap Method Area
main frame addTwoArgs frame
java/lang/Integer
Frame Data Frame Data JvmInternal
Instance [Ljava/lang/String
JvmInternal()
ref 30 main
ref
ref JvmInternal class
Operand Stack Operand Stack Field Information
pop
Class Variable
Local Variable cv 100
30
3 main Method
Length = 2 information
Local Variable
2 b=20 addTwoArgs method
args[1] 20 information
1 a=10 1 20
args[0] 10 Constant Pool
0 args 0 10 fcv 100
IRETURN - Return int from method
94. Java Performance
79
Java Performance Fundamental | twitter @novathinker
artdb@ex-em.com | performeister.tistory.com
Runtime Memory
Source c = addTwoArgs(a,b); bytecode 19: istore_3
Java Stack Java Heap Method Area
main frame
java/lang/Integer
Frame Data JvmInternal
Instance [Ljava/lang/String
Operand Stack
JvmInternal class
30 Field Information
Class Variable
Local Variable cv 100
3 c=30 main Method
Length = 2 information
2 b=20 addTwoArgs method
args[1] 20 information
1 a=10
args[0] 10 Constant Pool
0 args fcv 100
ISTORE - Store int from stack into local variable