PARA CREAR LA DATA A PROCESAR PRIMERO CORRER EL SCRIPT
./create_files.sh
Para poder probar los distintos escenarios de los serializadores en el archivo main.go se encuentra la siguiente config:
"github.com/goccy/go-json"
//"encoding/json"
//"github.com/go-json-experiment/json"
//json "github.com/bytedance/sonic"
PD: sino estan creados los archivos albums.json, albums_2.json y albums_3.json primero correr
./create_files.sh
Para crear el escenario correr:
./procedure_leak.sh
se crean los siguientes profiles:
- heap_post_file.out -> profile apenas se terminan de insertar los 500_000 albums
- heap_post_file_gc.out -> profile despues de correr el GC
- heap_delete_less_one.out -> profile despues de eliminar casi todos los albums salvo 1
- heap_delete_less_one_gc.out -> profile despues de correr el GC
- heap_delete.out -> profile despues de eliminar todos los albums
- heap_delete_gc.out -> profile despues de correr el GC
ver cada uno con
go tool pprof -http=:<numero_de_puerto> <nombre_del_archivo>.out
./procedure.sh
ESTO CREA LOS 3 ARCHIVOS QUE SE MENCIONAN A CONTINUACION
curl -X GET http://localhost:8080/albums/file/albums_0-1_000_000
curl -X GET http://localhost:8080/albums/file/albums_0-500_000
curl -X GET http://localhost:8080/albums/file/albums_500_000-2_000_000
curl -X GET http://localhost:8080/debug/pprof/heap > heap.out
curl -X GET http://localhost:8080/albums/gc
curl -X GET http://localhost:8080/albums/create/0,100000 > data.json
curl -X GET http://localhost:8080/albums/delete/0,2000000
curl -X GET http://localhost:8080/albums/cache