Isip bahin sa usa ka proyekto sa panukiduki
Alang sa pagsulay
Sa sunod nga yugto, giplano usab nga ibalhin ang mga interprocedural nga pag-optimize sa RTL sa lainlaing mga hilo, nga gikonsiderar ang mga kinaiya sa platform sa hardware. Pagkahuman niana, nagplano kami nga ipatuman ang parallelization sa intraprocedural optimizations (IPA) nga gipadapat sa code sa sulod sa function, bisan unsa pa ang mga detalye sa tawag. Ang limiting link sa pagkakaron mao ang garbage collector, nga midugang og global lock nga nag-disable sa mga operasyon sa pagkolekta sa basura samtang nagdagan sa multi-threaded mode (sa umaabot ang garbage collector ipahiangay para sa multi-threaded execution sa GCC).
Aron masusi ang mga pagbag-o sa pasundayag, usa ka test suite ang giandam nga nag-assemble sa gimple-match.c file, nga naglakip sa labaw sa 100 ka libo nga linya sa code ug 1700 ka mga gimbuhaton. Ang mga pagsulay sa usa ka sistema nga adunay Intel Core i5-8250U CPU nga adunay 4 nga pisikal nga mga cores ug 8 virtual (Hyperthreading) nagpakita sa pagkunhod sa oras sa pagpatuman sa Intra Procedural GIMPLE nga pag-optimize gikan sa 7 hangtod 4 segundo kung nagdagan ang 2 nga mga hilo ug hangtod sa 3 segundos kung nagdagan ang 4 mga hilo, i.e. Ang usa ka pagtaas sa katulin sa yugto sa asembliya nga gikonsiderar nakab-ot sa 1.72 ug 2.52 ka beses, sa tinuud. Gipakita usab sa mga pagsulay nga ang paggamit sa mga virtual nga core nga adunay Hyperthreading dili mosangpot sa pagtaas sa pasundayag.
Ang kinatibuk-ang oras sa pagtukod gikunhuran sa gibana-bana nga 10%, apan sumala sa mga panagna, ang pagparis sa mga pag-optimize sa RTL magtugot nga makab-ot ang labi ka makita nga mga sangputanan, tungod kay kini nga yugto nagkinahanglag daghang oras sa panahon sa pagtipon. Gibana-bana nga pagkahuman sa parallelization sa RTL, ang kinatibuk-ang oras sa asembliya maminusan sa 1.61 ka beses. Pagkahuman niini, mahimoβg makunhuran ang oras sa pagtukod sa lain nga 5-10% pinaagi sa pagparis sa mga pag-optimize sa IPA.
Source: opennet.ru