Quomodo usi sumus WebAssembly ad accelerandum applicationem interretialem 20 temporibus

Quomodo usi sumus WebAssembly ad accelerandum applicationem interretialem 20 temporibus

Articulus hic tractat causam velocitatis navigatoris applicationis JavaScript calculos reponens cum WebAssembly.

WebAssembly - quid est?

In summa, haec forma instructio binaria est pro ACERVUS virtualis apparatus fundatus. Wasm (nomen breve) saepe lingua programmandi appellatur, sed non est. Forma instructio fit in navigatro cum JavaScript.

Magni momenti est quod WebAssembly obtineri potest componendis fontibus in linguis sicut C/C++, Rust, Go. Hic statistica typingis et sic dicta plana memoriae exemplar adhibita sunt. Codex, ut supra dictum est, in forma binaria compacta reponitur, faciens eam fere quam velocissime currens applicationis lineae imperativae utens. Hae facultates ad popularis WebAssembly incrementum perduxerunt.

admonemus; omnibus legentibus "Habr" - discount 10 rublorum cum scribendo in quavis Skillbox utens "Habr" codice promotivo.

Skillbox commendat: Cursus practicus "Mobile Developer PRO".

In statu, Wasm in multis applicationibus adhibetur, a ludis sicut Fata 3 ad applicationes telae portatae sicut Autocad et Figma. Wasm etiam in his locis usus est ut computando inservientes.

Hic articulus praebet exemplum usus Wasm ad accelerandum servitium telae analyticae. Ad evidentiam huius operis applicationem in C scriptam cepimus, quae in WebAssembly compilata est. Ita fiet ut ad sectiones JS peractivas substituendas.

Applicationem Transformatio

Exemplum adhibebit fastq.bio muneris navigatoris, qui pro geneticistis destinatur. Instrumentum te permittit aestimare qualitatem DNA sequendi (decipiendi).

Exemplum est applicationis in actione.

Quomodo usi sumus WebAssembly ad accelerandum applicationem interretialem 20 temporibus

Singula processus in exitum non valent, sicut valde implicatae sunt pro non-specialists, sed in summa, phisici superiores infographicis uti possunt ad intellegendum num DNA processum sequentum aequaliter processerit et quid problemata orta sint.

Hoc officium alterum habet, programmata desktop. Sed fastq.bio permittit ut opus tuum accelerare per visualising notitia. In aliis casibus, cum imperio lineae operari possis, sed non omnes experientiam necessariam geneticists.

Omnia simpliciter operatur. Input data est in forma textuum fasciculi exhibita. Hic fasciculus ex specialioribus instrumentis sequendo generatur. Tabella indicem sequentiarum DNA continet et notam qualitatis pro quolibet nucleotide. Tabella forma est .fastq, unde religio nomen accepit.

Exsequendam in JavaScript

Primus gradus utentis cum fastq.bio laborat, tabellam aptam seligat. Obiecto tabellario utens, applicatio temere specimen notitiarum ex lima et processibus qui massam legit. Officium JavaScript hic est operationes chordae simplices et metricas computare. Una earum est numerus nucleotidum A, C, G, T in diversis fragmentis DNA.

Post indicibus necessariis computandis, subjiciuntur utens Plotly.js, et ministerium opus novum sample datae incipit. Fuscus fit operae pretium UX. Si operaris cum omnibus statim notitias, processus aliquandiu gelatur, quia tabulae cum subsequentibus eventibus centena gigabytarum spatii fasciculi capiunt. Ministerium frusta notitiarum magnitudine pervagantium ab 0,5 ad 1 MB accipit et cum illis gradatim operatur, graphice notitia aedificans.

Hoc est quam operatur;

Quomodo usi sumus WebAssembly ad accelerandum applicationem interretialem 20 temporibus

Red rectangulum filum continet mutationem algorithmum ad visualizationem obtinendam. Hoc est maxime intensiva pars servitii computationally. Operae pretium est cum Wasm reponere conatur.

Testis WebAssembly

Ad aestimare Wasm possibilitatem utendi, turma exertus solutiones paratas factas quaerens ad QC metrics (QC-qualitatis imperium) innixas in fastq imaginum quaerendo coepit. Percontatio facta est inter instrumenta in C, C++ vel Rust scripta, ita ut codicem WebAssembly deportare potuerit. Instrumentum praeterea "crudum" esse non debet: ministerium quod iam a physicis probatum est requirebatur.

Quam ob rem electio facta est in favorem seqtk. Applicatio satis vulgaris est, fons apertus, fons linguae c.

Priusquam ad Wasm convertatur, inspiciendi principium scribendi ratio seqtk pro desktop. Secundum Makefile, hic est quod debes;

# Compile to binary
$ gcc seqtk.c 
   -o seqtk 
   -O2 
   -lm 
   -lz

In prineipio, potes seqtk compilare usura Emscripten. Si non ibi, facimus. Docker image.

$ docker pull robertaboukhalil/emsdk:1.38.26
$ docker run -dt --name wasm-seqtk robertaboukhalil/emsdk:1.38.26

Si desideravit, Potes ipsum conveniresed suscipit tempus.

Intus receptaculo emcc joco gcc facile uti potes;

# Compile to WebAssembly
$ emcc seqtk.c 
    -o seqtk.js 
    -O2 
    -lm 
    -s USE_ZLIB=1 
    -s FORCE_FILESYSTEM=1

Mutationes minimum:

Instead of outputting to a file binarii, Emscripten utitur .wasm et .js ad generandum tabellas, quae ad moduli WebAssemby currunt.

Vexillum USE_ZLIB ad bibliothecam zlibi sustinendam adhibetur. Bibliotheca distributa et traiecta est WebAssembly, et Emscripten includit in incepto.

Emscrippten systema fasciculi virtualis reducitur. Hoc POSIX-sicut FS'in RAM intra pasco decurrens. Pagina reficitur, memoria purgatur.

Ad intellegendum cur ratio lima virtualis opus sit, pretium est comparare viam qua curris seqtk ex linea praecepti cum via quam curris moduli WebAssembly compilata.

# On the command line
$ ./seqtk fqchk data.fastq
 
# In the browser console
> Module.callMain(["fqchk", "data.fastq"])

Accessus ad systema fasciculi virtualis necessarium est ut seqtk non rescribere ad filum potius quam lima input. Hoc in casu, notitia fragmenti exhibetur ut tabella.fastq fasciculus virtualis FS cum vocatione ad principale () seqtk in ea.

Hic est nova architectura:

Quomodo usi sumus WebAssembly ad accelerandum applicationem interretialem 20 temporibus

Figura demonstrat loco calculi in filo navigatorio principali; WebWorkers. Haec methodus te permittit ut calculas in curriculo filo conficere sine affectatione navigatri docilitatis. Bene, moderatoris Webworker, opificem incipit, commercium cum filo principali administrans.

In seqtk imperio currit operario utens in fasciculo conscendit. Post exsecutionem peractam, Opifex in promissionis forma sistit. Cum epistulam praecipuo filo accipitur, effectus in graphis renovandis adhibetur. Et sic in pluribus iterationibus.

Quid de WebAssembly perficiendi?

Ad aestimandam mutationem in effectu, exertus manipulus legit operationes per alterum modulum adhibita. Tempus capit graphs interactivos construendi, rationi non habita est cum uterque JavaScript utatur.

Cum solutione archa utens, effectio incrementi novies fuit.

Quomodo usi sumus WebAssembly ad accelerandum applicationem interretialem 20 temporibus

Hoc optimum est, sed, ut evenit, occasio est etiam ipsum optimize. Re vera magnus numerus eventus analysis QC ab seqtk non adhibitus est, ideo deleri potest. Si hoc feceris, effectus melioris temporum 13 comparati sunt JS.

Quomodo usi sumus WebAssembly ad accelerandum applicationem interretialem 20 temporibus

Hoc factum est ut printf() mandata simpliciter explicantes.

Sed id nulla enim. Ita res se habet, fastq.bio in hoc stadio analysin recipit, vocando varias functiones C, quarum unaquaeque earum proprias notas computat, ita ut utrumque fragmentum tabellae bis legatur.

Ut hanc quaestionem circumirem, duas functiones in unum coniungere placuit. Quam ob rem, XX temporibus augetur fructibus.

Quomodo usi sumus WebAssembly ad accelerandum applicationem interretialem 20 temporibus

Notatu dignum est talem praestantem exitum non semper obtineri. In quibusdam effectus decidet, ut singulis rebus aestimandis valet.

Conclusio, dicere possumus Wasm opportunitatem ad emendandae applicationis effectum praebere, sed sapienter uti oportet.

Skillbox commendat:

Source: www.habr.com

Add a comment