Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

198
Views
Explicación de la estructura de la instantánea del montón de Chrome

Usando selenio, tomé una instantánea de la memoria de un sitio web con driver.execute_script(":takeHeapSnapshot") y extraje sus metadatos:

 { "snapshot": { "meta": { "node_fields": [ "type", "name", "id", "self_size", "edge_count", "trace_node_id", "detachedness" ], "node_types": [ ["hidden", "array", "string", "object", "code", "closure", "regexp", "number", "native", "synthetic", "concatenated string", "sliced string", "symbol", "bigint"], "string", "number", "number", "number", "number", "number" ], "edge_fields": [ "type", "name_or_index", "to_node" ], "edge_types": [ ["context", "element", "property", "internal", "hidden", "shortcut", "weak"], "string_or_number", "node" ], "trace_function_info_fields": [ "function_id", "name", "script_name", "script_id", "line", "column" ], "trace_node_fields": [ "id", "function_info_index", "count", "size", "children" ], "sample_fields": [ "timestamp_us", "last_assigned_id" ], "location_fields": [ "object_index", "script_id", "line", "column" ] }, "node_count": 6182075, "edge_count": 17793245, "trace_function_count": 0 } }

¿Alguien puede explicar, por favor, qué significa cada campo y cómo usar esa información para extraer datos? ¿Qué son los nodos, los bordes, los campos de ubicación, etc.? Como ejemplo, digamos que tengo un ArrayBuffer en el montón cuyo tamaño conozco (y es único) y quiero recuperar esta matriz. ¿Es posible hacerlo con la instantánea?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

El grupo de metacampos explica el contenido de las diferentes matrices de la instantánea.

La instantánea tiene la matriz de nodos. Esta matriz tiene 7 números para cada nodo en el montón y la matriz node_fields describe el significado de todos estos 7 números.

al mismo tiempo, la matriz node_types describe los tipos de estos 7 números. Por ejemplo, si tiene los siguientes 7 números en la matriz de nodos [ ....., 2, 9, 13, 42, 0, 0, 0, ......

luego el nodo N en el montón

  1. tiene una cadena de "tipo", porque node_types[0][2] == 'cadena',
  2. tiene "nombre" que está oculto en la matriz de cadenas del montón. es decir, cadenas[9],
  3. tiene "id" 13,
  4. utiliza 42 bytes del montón
  5. tiene 0 referencias a los otros objetos en el montón
  6. tiene "trace_node_id" = 0,
  7. tiene "desapego" = 0,

La matriz de bordes tiene un triplete de números para cada borde y puede ver los nombres de cada número en los campos de bordes y los tipos en la matriz de tipos de bordes. Por ejemplo, el triplete 2, 17, 79 en la matriz de bordes en el desplazamiento 0 significa:

  1. el borde es en realidad una propiedad de un objeto porque edge_types[0][2] = 'property'
  2. el nombre de la propiedad está oculto en la matriz de cadenas con el índice 17
  3. y apunta al nodo con id 79. (en realidad se me olvidó, es el índice del nodo o el id del nodo)
  4. si el primer nodo de la matriz de nodos tiene edge_count = 2, entonces los primeros 2 tripletes de la matriz de bordes son los bordes de este nodo a algunos otros nodos, etc.

Espero que esta explicación pueda darle alguna luz sobre cómo entender el contenido de la instantánea del montón.

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!