SlideShare una empresa de Scribd logo
1 de 63
Descargar para leer sin conexión
JVM Tuning
Lo que debes saber antes de subir a producción
@edusanchezcon
JVM Tuning
Lo que debes saber antes de subir a producción
@edusanchezcon
Sobre mí
Eduardo Sánchez
@edusanchezcon
github.com/EduSanchezCon
Consultor tecnológico en
Qué vamos a ver
* Tests de carga
* Tuning de memoria
* Tuning de rendimiento
Suda en desarrollo
para no sangrar en producción
@edusanchezcon
Tests de carga
Hay que probar un uso similar a la que tendrá en producción
Carga proporcional
Funcionalidad coherente
Entorno parecido
@edusanchezcon
Tests de carga: Medir y Monitorizar
Medir para saber cuánto
Tiempo de respuesta
Operaciones / Tiempo
Tiempo total por lote
Monitorizar para saber por qué
Sistema: CPU, Memoria, Disco
JVM: Memoria (Heap), GCs
Logs, Sampling, Profilers
@edusanchezcon
Load Test
Uso similar al de producción
Tests de carga: Tipos
@edusanchezcon
Capacity Test
Degradación en función de la carga
Tests de carga: Tipos
@edusanchezcon
Stress Test
Comportamiento ante una carga por encima de sus capacidades
Tests de carga: Tipos
@edusanchezcon
Recovery Test
Recuperación tras un desastre (fallo de BD, llenado de disco…)
Tests de carga: Tipos
@edusanchezcon
Soak Test
Degradación en función del tiempo
Tests de carga: Tipos
@edusanchezcon
JMeter, LoadUI, WebLoad, Gatling
JVisualVM, JConsole, Java Mission Control, Java Flight Recorder
Tests de carga: Herramientas
Y mucho más: Grafana, JMX events, integración en CI…
Qué vamos a ver
* Tests de carga
* Performance Tuning
* Memory Tuning
JVM
Unboxing
@edusanchezcon
Process Memory
La memoria en la JVM
@edusanchezcon
Heap
Metaspace
Code
Cache
Thread
N
Thread
2
Thread
1
La memoria en la JVM
@edusanchezcon
Young Generation
Metaspace
Code
Cache
Old Generation
Eden survivor
1 2
compressed
class space
PC Register
JVM Stack
Native Stack
Thread
N
La memoria en la JVM
@edusanchezcon
La memoria en la JVM (JDK ≤ 7)
Young Generation
Thread
N
Old Generation
Eden survivor
1 2
PC Register
JVM Stack
Native Stack
PermGen
Code
Cache
@edusanchezcon
¿Cómo se gestiona la Memoria?
No se libera memoria explícitamente
El Garbage Collector libera lo que ya no se usa
@edusanchezcon
C
B
D
E
N
A J
H
I
F
G
M
K
L
Q
P
¿Cómo se detecta lo que ya no se usa?
@edusanchezcon
C
B
D
E
N
A J
H
I
F
G
M
K
L
Q
P
¿Cómo se detecta lo que ya no se usa?
@edusanchezcon
C
B
D
E
N
A J
H
I
F
G
M
K
L
Q
P
static
Thread
¿Cómo se detecta lo que ya no se usa?
@edusanchezcon
C
B
D
E
N
A
J
H
I
F
G
M
K
L
Q
P
GC Roots
Reachable Objects
Non Reachable Objects
¿Cómo se detecta lo que ya no se usa?
@edusanchezcon
C
B
D
E
A
J
H
I
F
G
KP
GC Roots
Reachable Objects
¿Cómo se detecta lo que ya no se usa?
Hipótesis generacional
Objetos, peces,
la mayoría mueren jovenes
@edusanchezcon
Old GenerationEden
Survivors
1 2
Generational Collection
@edusanchezcon
Old GenerationEden
Survivors
1 2
Generational Collection
@edusanchezcon
Old GenerationEden
Survivors
1 2
Generational Collection
@edusanchezcon
Old GenerationEden
Survivors
1 2
Generational Collection
@edusanchezcon
Old GenerationEden
Survivors
1 2
Generational Collection
@edusanchezcon
Old GenerationEden
Survivors
1 2
Generational Collection
@edusanchezcon
Old GenerationEden
Survivors
1 2
Generational Collection
@edusanchezcon
Old GenerationEden
Survivors
1 2
Generational Collection
@edusanchezcon
Old GenerationEden
Survivors
1 2
Generational Collection
@edusanchezcon
Serial GC
Parallel GC
G1 GC
Concurrent Mark & Sweep
Z GC
Epsilon GC
Garbage Collectors
@edusanchezcon
Heap: Problemas comunes
OutOfMemoryError: Java heap space|GC overhead limit exceeded
Dimensionamiento incorrecto de la memoria
Memory leak
No Referenced Referenced
Not Used Used
{
leak
@edusanchezcon
Heap: Diagnóstico
Heap Dumps
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path-to-hd
jcmd <pid> GC.heap_dump <path>
JVisualVM, JConsole, Java Mission Control
Sin Full GC previo: jcmd <pid> GC.heap_dump -all <path>
Análisis: Eclipse Memory Analyzer Tool
Ahí te hemos dejado el dump
@edusanchezcon
Monitorización continua del tamaño del Heap
Configuración de frameworks/librerías de terceros
Heap: Recomendaciones
-Xms = -Xmx
@edusanchezcon
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:<file-path>
Java 9+ -xlog
Garbage Collector: GC Logs
SIEMPRE ACTIVADO EN PRODUCCIÓN
@edusanchezcon
Garbage Collector: GC Logs
2018-11-19T10:49:38.496-0100: 17.830:
[Full GC (Ergonomics)
[PSYoungGen: 256K->0K(43008K)]
[ParOldGen: 46473K->1524K(46592K)] 46729K->1524K(89600K),
[Metaspace: 5450K->5442K(1056768K)],
0.0075023 secs] [Times: user=0.03 sys=0.00, real=0.01 secs]
@edusanchezcon
2018-11-19T10:49:38.496-0100: 17.830:
[Full GC (Ergonomics)
[PSYoungGen: 256K->0K(43008K)]
[ParOldGen: 46473K->1524K(46592K)] 46729K->1524K(89600K),
[Metaspace: 5450K->5442K(1056768K)],
0.0075023 secs] [Times: user=0.03 sys=0.00, real=0.01 secs]
Timestamp absoluto del gc
Garbage Collector: GC Logs
@edusanchezcon
2018-11-19T10:49:38.496-0100: 17.830:
[Full GC (Ergonomics)
[PSYoungGen: 256K->0K(43008K)]
[ParOldGen: 46473K->1524K(46592K)] 46729K->1524K(89600K),
[Metaspace: 5450K->5442K(1056768K)],
0.0075023 secs] [Times: user=0.03 sys=0.00, real=0.01 secs]
Timestamp relativo al inicio de la JVM
Garbage Collector: GC Logs
@edusanchezcon
2018-11-19T10:49:38.496-0100: 17.830:
[Full GC (Ergonomics)
[PSYoungGen: 256K->0K(43008K)]
[ParOldGen: 46473K->1524K(46592K)] 46729K->1524K(89600K),
[Metaspace: 5450K->5442K(1056768K)],
0.0075023 secs] [Times: user=0.03 sys=0.00, real=0.01 secs]
Causa del GC
Garbage Collector: GC Logs
@edusanchezcon
2018-11-19T10:49:38.496-0100: 17.830:
[Full GC (Ergonomics)
[PSYoungGen: 256K->0K(43008K)]
[ParOldGen: 46473K->1524K(46592K)] 46729K->1524K(89600K),
[Metaspace: 5450K->5442K(1056768K)],
0.0075023 secs] [Times: user=0.03 sys=0.00, real=0.01 secs]
Región de memoria
Garbage Collector: GC Logs
@edusanchezcon
2018-11-19T10:49:38.496-0100: 17.830:
[Full GC (Ergonomics)
[PSYoungGen: 256K->0K(43008K)]
[ParOldGen: 46473K->1524K(46592K)] 46729K->1524K(89600K),
[Metaspace: 5450K->5442K(1056768K)],
0.0075023 secs] [Times: user=0.03 sys=0.00, real=0.01 secs]
Espacio antes y después del GC (capacidad de la región de memoria)
Garbage Collector: GC Logs
@edusanchezcon
2018-11-19T10:49:38.496-0100: 17.830:
[Full GC (Ergonomics)
[PSYoungGen: 256K->0K(43008K)]
[ParOldGen: 46473K->1524K(46592K)] 46729K->1524K(89600K),
[Metaspace: 5450K->5442K(1056768K)],
0.0075023 secs] [Times: user=0.03 sys=0.00, real=0.01 secs]
Espacio antes y después dell GC (capacidad total del Heap)
Garbage Collector: GC Logs
@edusanchezcon
2018-11-19T10:49:38.496-0100: 17.830:
[Full GC (Ergonomics)
[PSYoungGen: 256K->0K(43008K)]
[ParOldGen: 46473K->1524K(46592K)] 46729K->1524K(89600K),
[Metaspace: 5450K->5442K(1056768K)],
0.0075023 secs] [Times: user=0.03 sys=0.00, real=0.01 secs]
Tiempo real
Garbage Collector: GC Logs
@edusanchezcon
2018-11-19T10:49:38.496-0100: 17.830:
[Full GC (Ergonomics)
[PSYoungGen: 256K->0K(43008K)]
[ParOldGen: 46473K->1524K(46592K)] 46729K->1524K(89600K),
[Metaspace: 5450K->5442K(1056768K)],
0.0075023 secs] [Times: user=0.03 sys=0.00, real=0.01 secs]
Tiempo de CPU
Garbage Collector: GC Logs
Qué vamos a ver
* Tests de carga
* Memory Tuning
* Performance Tuning
“Premature optimization
is the root of all evil”
Donald Knuth
@edusanchezcon
Nuestro código vs lo que se ejecuta
Interprete
Bytecode
Compilador
Código máquina
optimizado
@edusanchezcon
Nuestro código vs lo que se ejecuta
Interprete
Bytecode
C1
Código máquina
C2
Código máquina
optimizado
@edusanchezcon
Optimizaciones del JIT Compiler
‣ Trivial inlining
‣ Call graph inlining
‣ Tail recursion elimination
‣ Virtual call guard optimizations
‣ Local data flow analyses and optimizations
‣ Register usage optimization
‣ Simplifications of Java idioms
‣ Code reordering, splitting, and removal
‣ Loop reduction and inversion
‣ Loop striding and loop-invariant code motion
‣ Loop unrolling and peeling
‣ Loop versioning and specialization
‣ Exception-directed optimization
‣ Switch analysis
‣ Global data flow analyses and optimizations
‣ Partial redundancy elimination
‣ Escape analysis
‣ GC and memory allocation optimizations
‣ Synchronization optimizations
@edusanchezcon
Ciclo de performance tuning
Determinar la carga máxima
Localizar el cuello de botella Solucionar el problema
Load Test
Sampler/Profiler
@edusanchezcon
Ejemplo práctico
-XX:+UnlockCommercialFeatures -XX:FlightRecorder
@edusanchezcon
Operaciones de Entrada / Salida
Cuellos de botella frecuentes
Ejecutar muchas veces lo mismo (de manera innecesaria)
Dimensionamiento ineficiente de pools de hilos
Wanna go faster?
No GCs
Native Memory
Specialized Collections
CharSequence
? @edusanchezcon

Más contenido relacionado

La actualidad más candente

đáNh giá chất lượng vệ sinh an toàn thực phẩm cháo dinh dưỡng ở một số quận t...
đáNh giá chất lượng vệ sinh an toàn thực phẩm cháo dinh dưỡng ở một số quận t...đáNh giá chất lượng vệ sinh an toàn thực phẩm cháo dinh dưỡng ở một số quận t...
đáNh giá chất lượng vệ sinh an toàn thực phẩm cháo dinh dưỡng ở một số quận t...TÀI LIỆU NGÀNH MAY
 
Bai thuyet trinh quan tri chien luoc cty Vinamilk
Bai thuyet trinh quan tri chien luoc cty VinamilkBai thuyet trinh quan tri chien luoc cty Vinamilk
Bai thuyet trinh quan tri chien luoc cty VinamilkMo Ut
 
Luận án: Quản lý về An toàn thực phẩm ở Việt Nam hiện nay - Gửi miễn phí qua ...
Luận án: Quản lý về An toàn thực phẩm ở Việt Nam hiện nay - Gửi miễn phí qua ...Luận án: Quản lý về An toàn thực phẩm ở Việt Nam hiện nay - Gửi miễn phí qua ...
Luận án: Quản lý về An toàn thực phẩm ở Việt Nam hiện nay - Gửi miễn phí qua ...Dịch vụ viết bài trọn gói ZALO: 0909232620
 
Bai giang kinh te vi mo (1)
Bai giang kinh te vi mo (1)Bai giang kinh te vi mo (1)
Bai giang kinh te vi mo (1)Dung Ha
 
Đề thi lý thuyết DWSJ Aptech
Đề thi lý thuyết DWSJ AptechĐề thi lý thuyết DWSJ Aptech
Đề thi lý thuyết DWSJ AptechNhân Châu KP
 
12 Cách giải cho 1 bài bất đẳng thức
12 Cách giải cho 1 bài bất đẳng thức12 Cách giải cho 1 bài bất đẳng thức
12 Cách giải cho 1 bài bất đẳng thứcSirô Tiny
 
Trac nghiem kien thuc Google adwords
Trac nghiem kien thuc Google adwordsTrac nghiem kien thuc Google adwords
Trac nghiem kien thuc Google adwordsHoàng Vương
 
Quản trị học - Công ty cp sữa Vinamilk
Quản trị học - Công ty cp sữa VinamilkQuản trị học - Công ty cp sữa Vinamilk
Quản trị học - Công ty cp sữa VinamilkGiang Ph
 
Phiếu điều tra thị trường 2013
Phiếu điều tra thị trường 2013Phiếu điều tra thị trường 2013
Phiếu điều tra thị trường 2013Nguyễn Loan
 
Thử nghiệm tạo thức uống probiotic từ nước cam
Thử nghiệm tạo thức uống probiotic từ nước camThử nghiệm tạo thức uống probiotic từ nước cam
Thử nghiệm tạo thức uống probiotic từ nước camTÀI LIỆU NGÀNH MAY
 
Chuyên đề xác suất thống kê
Chuyên đề  xác suất   thống kêChuyên đề  xác suất   thống kê
Chuyên đề xác suất thống kêThế Giới Tinh Hoa
 
Phân tích dữ liệu thống kê
Phân tích dữ liệu thống kêPhân tích dữ liệu thống kê
Phân tích dữ liệu thống kêHọc Huỳnh Bá
 

La actualidad más candente (20)

Đề tài: Phát triển ngành hàng snack tại công ty chế biến thực phẩm
Đề tài: Phát triển ngành hàng snack tại công ty chế biến thực phẩmĐề tài: Phát triển ngành hàng snack tại công ty chế biến thực phẩm
Đề tài: Phát triển ngành hàng snack tại công ty chế biến thực phẩm
 
đáNh giá chất lượng vệ sinh an toàn thực phẩm cháo dinh dưỡng ở một số quận t...
đáNh giá chất lượng vệ sinh an toàn thực phẩm cháo dinh dưỡng ở một số quận t...đáNh giá chất lượng vệ sinh an toàn thực phẩm cháo dinh dưỡng ở một số quận t...
đáNh giá chất lượng vệ sinh an toàn thực phẩm cháo dinh dưỡng ở một số quận t...
 
A not-a
A not-aA not-a
A not-a
 
Bai thuyet trinh quan tri chien luoc cty Vinamilk
Bai thuyet trinh quan tri chien luoc cty VinamilkBai thuyet trinh quan tri chien luoc cty Vinamilk
Bai thuyet trinh quan tri chien luoc cty Vinamilk
 
Luận án: Quản lý về An toàn thực phẩm ở Việt Nam hiện nay - Gửi miễn phí qua ...
Luận án: Quản lý về An toàn thực phẩm ở Việt Nam hiện nay - Gửi miễn phí qua ...Luận án: Quản lý về An toàn thực phẩm ở Việt Nam hiện nay - Gửi miễn phí qua ...
Luận án: Quản lý về An toàn thực phẩm ở Việt Nam hiện nay - Gửi miễn phí qua ...
 
Bai giang kinh te vi mo (1)
Bai giang kinh te vi mo (1)Bai giang kinh te vi mo (1)
Bai giang kinh te vi mo (1)
 
Đề thi lý thuyết DWSJ Aptech
Đề thi lý thuyết DWSJ AptechĐề thi lý thuyết DWSJ Aptech
Đề thi lý thuyết DWSJ Aptech
 
12 Cách giải cho 1 bài bất đẳng thức
12 Cách giải cho 1 bài bất đẳng thức12 Cách giải cho 1 bài bất đẳng thức
12 Cách giải cho 1 bài bất đẳng thức
 
Sản xuất sữa chua
Sản xuất sữa chuaSản xuất sữa chua
Sản xuất sữa chua
 
Trac nghiem kien thuc Google adwords
Trac nghiem kien thuc Google adwordsTrac nghiem kien thuc Google adwords
Trac nghiem kien thuc Google adwords
 
Chương 6
Chương 6Chương 6
Chương 6
 
Quản trị học - Công ty cp sữa Vinamilk
Quản trị học - Công ty cp sữa VinamilkQuản trị học - Công ty cp sữa Vinamilk
Quản trị học - Công ty cp sữa Vinamilk
 
Phiếu điều tra thị trường 2013
Phiếu điều tra thị trường 2013Phiếu điều tra thị trường 2013
Phiếu điều tra thị trường 2013
 
Đề tài: Áp dụng HACCP vào quy trình sản xuất dứa khoanh đóng hộp
Đề tài: Áp dụng HACCP vào quy trình sản xuất dứa khoanh đóng hộpĐề tài: Áp dụng HACCP vào quy trình sản xuất dứa khoanh đóng hộp
Đề tài: Áp dụng HACCP vào quy trình sản xuất dứa khoanh đóng hộp
 
20 bài toán rút về đơn vị có đáp án
20 bài toán rút về đơn vị có đáp án20 bài toán rút về đơn vị có đáp án
20 bài toán rút về đơn vị có đáp án
 
Danh sách các công ty trong nước đạt tiêu chuẩn GMP (31_07_2022).pdf
Danh sách các công ty trong nước đạt tiêu chuẩn GMP (31_07_2022).pdfDanh sách các công ty trong nước đạt tiêu chuẩn GMP (31_07_2022).pdf
Danh sách các công ty trong nước đạt tiêu chuẩn GMP (31_07_2022).pdf
 
Quy trình làm nem chua Thanh Hóa
Quy trình làm nem chua Thanh Hóa Quy trình làm nem chua Thanh Hóa
Quy trình làm nem chua Thanh Hóa
 
Thử nghiệm tạo thức uống probiotic từ nước cam
Thử nghiệm tạo thức uống probiotic từ nước camThử nghiệm tạo thức uống probiotic từ nước cam
Thử nghiệm tạo thức uống probiotic từ nước cam
 
Chuyên đề xác suất thống kê
Chuyên đề  xác suất   thống kêChuyên đề  xác suất   thống kê
Chuyên đề xác suất thống kê
 
Phân tích dữ liệu thống kê
Phân tích dữ liệu thống kêPhân tích dữ liệu thống kê
Phân tích dữ liệu thống kê
 

Similar a JVM tuning: lo que debes saber antes de subir a producción

JVM tuning: Lo que debes saber antes de subir a producción
JVM tuning: Lo que debes saber antes de subir a producciónJVM tuning: Lo que debes saber antes de subir a producción
JVM tuning: Lo que debes saber antes de subir a producciónEduardo Sánchez Contreras
 
Nodejs.introduccion
Nodejs.introduccionNodejs.introduccion
Nodejs.introduccionkillfill
 
Juan Antonio Calles & Patricia Rada - Biohacking: Almacenando información en ...
Juan Antonio Calles & Patricia Rada - Biohacking: Almacenando información en ...Juan Antonio Calles & Patricia Rada - Biohacking: Almacenando información en ...
Juan Antonio Calles & Patricia Rada - Biohacking: Almacenando información en ...RootedCON
 
(Codemotion 2014) JVM GC: WTF?!
(Codemotion 2014) JVM GC: WTF?!(Codemotion 2014) JVM GC: WTF?!
(Codemotion 2014) JVM GC: WTF?!Alonso Torres
 
Primeros pasos con Logstash y Beats
Primeros pasos con Logstash y BeatsPrimeros pasos con Logstash y Beats
Primeros pasos con Logstash y BeatsUllyCarolinneSampaio
 
Presentacion password cracking_madrid_2019
Presentacion password cracking_madrid_2019Presentacion password cracking_madrid_2019
Presentacion password cracking_madrid_2019Labs CSL
 
Big Data. Complejidad,algoritmos y su procesamiento
Big Data. Complejidad,algoritmos y su procesamientoBig Data. Complejidad,algoritmos y su procesamiento
Big Data. Complejidad,algoritmos y su procesamientoVictoria López
 
Computación evolutiva no tradicional
Computación evolutiva no tradicionalComputación evolutiva no tradicional
Computación evolutiva no tradicionalJuan J. Merelo
 
Nodejs.introduccion
Nodejs.introduccionNodejs.introduccion
Nodejs.introduccionkillfill
 

Similar a JVM tuning: lo que debes saber antes de subir a producción (13)

JVM tuning: Lo que debes saber antes de subir a producción
JVM tuning: Lo que debes saber antes de subir a producciónJVM tuning: Lo que debes saber antes de subir a producción
JVM tuning: Lo que debes saber antes de subir a producción
 
Nodejs.introduccion
Nodejs.introduccionNodejs.introduccion
Nodejs.introduccion
 
Juan Antonio Calles & Patricia Rada - Biohacking: Almacenando información en ...
Juan Antonio Calles & Patricia Rada - Biohacking: Almacenando información en ...Juan Antonio Calles & Patricia Rada - Biohacking: Almacenando información en ...
Juan Antonio Calles & Patricia Rada - Biohacking: Almacenando información en ...
 
(Codemotion 2014) JVM GC: WTF?!
(Codemotion 2014) JVM GC: WTF?!(Codemotion 2014) JVM GC: WTF?!
(Codemotion 2014) JVM GC: WTF?!
 
Archlinux
ArchlinuxArchlinux
Archlinux
 
Primeros pasos con Logstash y Beats
Primeros pasos con Logstash y BeatsPrimeros pasos con Logstash y Beats
Primeros pasos con Logstash y Beats
 
Leeme
LeemeLeeme
Leeme
 
Presentacion password cracking_madrid_2019
Presentacion password cracking_madrid_2019Presentacion password cracking_madrid_2019
Presentacion password cracking_madrid_2019
 
Big Data. Complejidad,algoritmos y su procesamiento
Big Data. Complejidad,algoritmos y su procesamientoBig Data. Complejidad,algoritmos y su procesamiento
Big Data. Complejidad,algoritmos y su procesamiento
 
7 curso
7 curso7 curso
7 curso
 
Computación evolutiva no tradicional
Computación evolutiva no tradicionalComputación evolutiva no tradicional
Computación evolutiva no tradicional
 
Nodejs.introduccion
Nodejs.introduccionNodejs.introduccion
Nodejs.introduccion
 
[Run Reloaded] Estrategias de Caching Distribuído con Microsoft Velocity Proj...
[Run Reloaded] Estrategias de Caching Distribuído con Microsoft Velocity Proj...[Run Reloaded] Estrategias de Caching Distribuído con Microsoft Velocity Proj...
[Run Reloaded] Estrategias de Caching Distribuído con Microsoft Velocity Proj...
 

Último

BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...ITeC Instituto Tecnología Construcción
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3AlexysCaytanoMelndez1
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTEREMMAFLORESCARMONA
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionarmando_cardenas
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOSelenaCoronadoHuaman
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfmasogeis
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Opentix
 

Último (7)

BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTER
 
Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacion
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdf
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200
 

JVM tuning: lo que debes saber antes de subir a producción