Ang Facebook open source framework aron makit-an ang mga pagtulo sa memorya sa JavaScript

Giablihan sa Facebook (gidili sa Russian Federation) ang source code sa memlab toolkit, gidesinyo sa pag-analisar sa mga hiwa sa estado sa dinamikong gigahin nga memorya (tapok), pagtino sa mga estratehiya sa pag-optimize sa pagdumala sa memorya, ug pag-ila sa mga pagtulo sa memorya nga mahitabo sa pagpatuman sa code sa JavaScript. Ang code bukas ubos sa lisensya sa MIT.

Gibuhat ang balangkas aron analisahon ang mga hinungdan sa taas nga pagkonsumo sa memorya kung nagtrabaho kauban ang mga website ug aplikasyon sa web. Pananglitan, ang memlab gigamit sa pag-analisar sa konsumo sa panumduman kung naggamit sa bag-ong bersyon sa website sa Facebook.com, nga nagpaposible sa pag-ila sa mga pagtulo nga misangpot sa pag-crash sa browser sa kilid sa kliyente tungod sa kakapoy sa libre nga memorya.

Ang mga hinungdan sa pagtulo sa memorya sa dihang nagpatuman sa JavaScript code mahimong tinago nga mga reperensiya sa butang nga makapugong sa tigkolekta sa basura nga buhian ang panumduman nga giokupar sa butang, dili maalamon nga pag-cache sa mga bili, o pagpatuman sa walay kinutuban nga pag-scroll nga walay pagpahawa sa daan nga mga elemento sa listahan. Pananglitan, sa code sa ubos sa Chrome, usa ka memory leak ang mahitabo tungod sa butang nga "obj", bisan pa sa kamatuoran nga kini gi-assign sa kantidad nga null, tungod kay ang Chrome nagtipig sa mga internal nga reperensiya sa mga output nga butang alang sa ulahi nga pagsusi sa web console . var obj = {}; console.log(obj); obj = null;

Panguna nga mga bahin sa memlab:

  • Pag-detect sa mga pagtulo sa memorya sa browser. Gitugotan ka sa Memlab nga awtomatiko nga itandi ang mga snapshot sa kahimtang sa memorya, makit-an ang mga pagtulo sa panumduman, ug igsama ang mga resulta.
  • Usa ka object-oriented nga API para sa heap iteration, nga magtugot kanimo sa pagpatuman sa imong kaugalingon nga leak detection algorithms ug pagpatuman sa mga sistema para sa pag-analisar sa heap state snapshots. Ang pag-analisa sa tambak gisuportahan alang sa mga browser nga gibase sa makina sa Chromium, ingon man alang sa mga platform sa Node.js, Electron ug Hermes.
  • Ang interface sa command line ug API alang sa pagpangita og mga oportunidad aron ma-optimize ang paggamit sa memorya.
  • Usa ka sistema sa pagpahayag alang sa Node.js nga nagtugot kanimo sa paghimo sa mga pagsulay sa yunit ug pagpadagan sa mga programa nga gibase sa Node.js aron makahimo mga hiwa sa imong kaugalingon nga estado, pagsulay sa imong panumduman, o pagsulat sa gipalawig nga mga pagsusi sa pagpahayag.

Source: opennet.ru

Idugang sa usa ka comment