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

145
Views
Analizando un archivo JSON grande usando Typescript

Quiero analizar/procesar un archivo JSON de 25 MB usando Typescript y filtrar/ordenar los objetos. eficiente.

Nota: el código funcionó en un archivo pequeño

 import fs from 'fs'; searchAccounts(): Promise<Account[]> { const accountSearchCriteria: AccountSearchCriteria = { country: 'NZ', mfa: 'SMS', name: 'TEST', sortField: 'dob' }; const jsonPath = './src/file.json'; const rawAccounts = fs.readFileSync(jsonPath, 'utf-8'); let accounts: Account[] = JSON.parse(rawAccounts); if (accountSearchCriteria) { if (accountSearchCriteria.name) { accounts = accounts.filter( account => account.firstName.toLowerCase() === accountSearchCriteria.name.toLowerCase() || account.lastName.toLowerCase() === accountSearchCriteria.name.toLowerCase() ); } if (accountSearchCriteria.country) { accounts = accounts.filter( account => account.country.toLowerCase() === accountSearchCriteria.country.toLowerCase() ); } if (accountSearchCriteria.mfa) { accounts = accounts.filter( account => account.mfa === accountSearchCriteria.mfa ); } if (accountSearchCriteria.sortField) { accounts.sort((a, b) => { return a[accountSearchCriteria.sortField] < b[accountSearchCriteria.sortField] ? -1 : 1; }); } return accounts; } return accounts; }
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Dado que el tamaño de sus datos es de 25 MB, debe usar un algoritmo de clasificación más eficiente en memoria.

Puedes intentar usar ordenación cíclica.

Cycle-sort puede encontrar una implementación aquí y usarla en su código para ver si hay alguna diferencia.

about 4 years ago · Juan Pablo Isaza Report

0

Node.js es de subproceso único si su código bloquea el subproceso durante mucho tiempo, le dará un error de tiempo de espera. Hay dos problemas con su código.

  1. está utilizando fs.readFileSync(jsonPath, 'utf-8'); , es una función asíncrona y bloquea el hilo mientras lee el archivo. Use en su lugar fs.readFile('./Index.html', callback) :
 const fs = require('fs'); fs.readFile('./Index.html', function read(err, data) { if (err) { throw err; } console.log(data); });
  1. La clasificación de datos también es una tarea de bloqueo de subprocesos, pruebe con una técnica de clasificación diferente, que no ocupa el subproceso durante mucho tiempo.

Nota: Node.js no es bueno con tareas centradas en la CPU, es decir, clasificación, procesamiento de imágenes, etc. Es bueno con tareas de E/S.

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!