Imwe nguva yapfuura (mukuwa kwe2016), panguva yekuvandudzwa kweiyo inotevera vhezheni ye1C:Enterprise tekinoroji chikuva, mubvunzo wakamuka mukati meboka rekusimudzira nezve kutsigira chiyero chitsva.
Kune avo vasingazive, 1C:Enterprise inzvimbo yekukurumidza kusimudzira kwemuchinjika-platform bhizinesi maapplication uye yekumhanyisa nguva yekuuraya kwavo pamaOS akasiyana uye maDBMS. Kazhinji, chigadzirwa chine:
Application Server Cluster , inoshanda paWindows neLinuxMutengi , kushanda nesevha kuburikidza ne http (s) kana yayo bhinari protocol, inoshanda paWindows, Linux, macOSWeb client , inoshanda muChrome, Internet Explorer, Microsoft Edge, Firefox, Safari browsers (yakanyorwa muJavaScript)- Development environment (
Configurator ), inoshanda paWindows, Linux, macOS Zvishandiso zvekutonga maseva ekushandisa, anomhanya paWindows, Linux, macOSMobile client , ichibatanidza kune server kuburikidza ne http(s), inoshanda panharembozha dzinomhanya Android, iOS, WindowsNharembozha - dhizaini yekugadzira nharembozha dzisiri pamhepo nekugona kuwiriranisa, inoshanda pa Android, iOS, Windows- Development environment
1C:Enterprise Development Tools , yakanyorwa muJava - Server
Kudyidzana Systems
Isu tinoedza kunyora iyo imwechete kodhi yeakasiyana masisitimu ekushandisa zvakanyanya sezvinobvira - iyo server kodhi base ndeye 99% yakajairika, iyo yeklayiti kodhi base inosvika 95%. Iyo 1C:Enterprise tekinoroji tekinoroji inonyanya kunyorwa muC ++ uye fungidziro yekodhi hunhu inopihwa pazasi:
- 10 miriyoni mitsetse yeC ++ kodhi,
- 14 zviuru zvemafaira,
- 60 zviuru zvekirasi,
- hafu yemiriyoni nzira.
Uye zvese izvi zvinhu zvaifanira kushandurirwa muC++14. Nhasi tichakuudza kuti takaita sei izvi uye zvatakasangana nazvo mukuita.
Disclaimer
Zvese zvakanyorwa pazasi nezve basa rinononoka/nekukurumidza, (kwete) hombe ndangariro kushandiswa nekushandiswa kwemakirasi akajairwa mumaraibhurari akasiyana-siyana zvinoreva chinhu chimwe: ichi ichokwadi KWAtiri. Zvinogoneka kuti mashandisirwo akajairwa anove akanyatsokodzera mabasa ako. Takatanga kubva kumabasa edu pachedu: takatora data raive rakajairwa nevatengi vedu, takamhanyisa mamiriro pavari, takatarisa mashandiro, huwandu hwendangariro dzakadyiwa, nezvimwewo, uye tikaongorora kana isu nevatengi vedu takagutsikana nemhedzisiro yakadai kana kwete. . Uye vakaita zvinoenderana.
Zvataiva nazvo
Pakutanga, takanyora kodhi ye1C:Enterprise 8 chikuva muMicrosoft Visual Studio. Iyo purojekiti yakatanga mukutanga 2000s uye isu taive neWindows-chete vhezheni. Nomuzvarirwo, kubvira ipapo iyo kodhi yakave yakanyatso kugadzirwa, nzira dzakawanda dzave dzakanyorwa zvachose. Asi iyo kodhi yakanyorwa zvinoenderana neyakajairwa 1998, uye, semuenzaniso, mabhureki edu ekurudyi akapatsanurwa nenzvimbo kuitira kuti kuunganidzwa kubudirire, seizvi:
vector<vector<int> > IntV;
Muna 2006, nekuburitswa kwepuratifomu vhezheni 8.1, takatanga kutsigira Linux uye nekuchinjira kune yechitatu-bato standard raibhurari.
Tambo yedu yakavakirwa patambo optimization mazano akataurwa kumashure mukutanga 2000s
Mutsetse wedu wakashandisa maviri makuru optimization matekinoroji:
- Kune hupfupi hupfupi, buffer yemukati muchinhu chetambo pachayo inoshandiswa (isingade yakawedzera ndangariro kugoverwa).
- Kune vamwe vese, makanika anoshandiswa
Kopa Pakunyora . Iko kukosha kwetambo inochengetwa munzvimbo imwechete, uye referensi counter inoshandiswa panguva yekugovera/kugadzirisa.
Kuti tikurumidze kuunganidzwa kwepuratifomu, isu takabvisa kuitiswa kwerukova kubva kune yedu STLPort musiyano (iyo yatisina kushandisa), izvi zvakatipa nezve 20% nekukurumidza kuunganidza. Zvadaro taifanira kushandisa zvishoma
Nzira yechitatu
Pakuenda kuC ++ 14 standard, takafunga zvinotevera sarudzo:
- Simudzira iyo STLPort yatakagadziridza kune iyo C ++ 14 standard. Iyo sarudzo yakaoma kwazvo, nekuti ... Tsigiro yeSTLPort yakamiswa muna 2010, uye isu taizofanira kuvaka kodhi yayo yese isu pachedu.
- Shanduko kune imwe STL kuita inoenderana neC++14. Zvinonyanya kudiwa kuti kuita uku kuve kweWindows neLinux.
- Paunenge uchigadzira yega yega OS, shandisa raibhurari yakavakirwa mukati inoenderana compiler.
Sarudzo yekutanga yakarambwa zvachose nekuda kwebasa rakawandisa.
Takafunga nezvechisarudzo chechipiri kwenguva yakati; achitorwa semumiriri
Uye takasarudza nzira yechitatu.
Shanduko
Saka, taifanira kutsiva kushandiswa kweSTLPort nemaraibhurari evanosanganisa compilers (Visual Studio 2015 yeWindows, gcc 7 yeLinux, clang 8 yeMacOS).
Sezvineiwo, kodhi yedu yakanyorwa zvakanyanya maererano nemirairo uye haina kushandisa marudzi ese ehungwaru, saka kutamira kumaraibhurari matsva kwakafamba zvakanaka, nerubatsiro rwezvinyorwa zvakatsiva mazita emhando, makirasi, nzvimbo dzezita uye anosanganisira mune sosi. mafaira. Kutama kwacho kwakakanganisa 10 source mafaira (kunze kwegumi nemana). wchar_t yakatsiviwa nechar000_t; isu takasarudza kusiya kushandiswa kwewchar_t, nekuti char14_t inotora 000 bytes pane ese maOS uye haina kukanganisa kodhi kuenderana pakati peWindows neLinux.
Paive netumwe tunhu tudiki. Semuyenzaniso, muSTLPort iterator inogona kukandwa zvisina kujeka kune chinongedzo kune chimwe chinhu, uye mune dzimwe nzvimbo mukodhi yedu izvi zvakashandiswa. Mumaraibhurari matsva zvakanga zvisisakwanisike kuita izvi, uye ndima idzi dzaifanira kuongororwa uye kunyorwazve nemaoko.
Saka, kutama kwekodhi kwapera, iyo code inobatanidzwa kune ese anoshanda masisitimu. Yasvika nguva yemiedzo.
Miedzo mushure mekuchinja kwakaratidza kudonha kwekuita (mune dzimwe nzvimbo kusvika ku20-30%) uye kuwedzera kwekuyeuka kushandiswa (kusvika ku10-15%) kana ichienzaniswa neshanduro yekare yekodhi. Izvi zvaive, kunyanya, nekuda kweiyo suboptimal performance ye standard tambo. Naizvozvo, taifanira zvakare kushandisa mutsara wedu, wakagadziridzwa zvishoma.
Chinhu chinonakidza chekuitwa kwemidziyo mumaraibhurari akadzamirirwa chakaburitswa zvakare: isina (isina zvinhu) std::mepu uye std::seti kubva mumabhuku akavakirwa-mukati anogovera ndangariro. Uye nekuda kwekuita maficha, mune dzimwe nzvimbo mune kodhi yakawanda isina chinhu midziyo yerudzi urwu inogadzirwa. Standard memory midziyo yakagovaniswa zvishoma, kune imwe mudzi chinhu, asi kwatiri izvi zvakazonetsa - mune akati wandei mamiriro, kuita kwedu kwakadzikira zvakanyanya uye kushandiswa kwendangariro kwakawedzera (zvichienzaniswa neSTLPort). Naizvozvo, mukodhi yedu takatsiva aya marudzi maviri emidziyo kubva mumaraibhurari akavakirwa-mukati nekuita kwavo kubva kuBoost, uko midziyo iyi yakanga isina chimiro ichi, uye izvi zvakagadzirisa dambudziko nekuderera uye kuwedzera ndangariro kushandiswa.
Sezvinowanzoitika mushure mekuchinja kukuru mumapurojekiti makuru, iyo yekutanga iteration yekodhi kodhi haina kushanda pasina matambudziko, uye pano, kunyanya, tsigiro yedebugging iterators muWindows kuita yakauya inobatsira. Nhanho nhanho takaenderera mberi, uye nechirimo che2017 (vhezheni 8.3.11 1C: Bhizinesi) kutama kwakapedzwa.
Migumisiro
Shanduko kuenda kuC++14 standard yakatitorera inenge mwedzi mitanhatu. Nguva zhinji, mugadziri mumwe (asi ane hunyanzvi kwazvo) akashanda pachirongwa ichi, uye padanho rekupedzisira vamiriri vezvikwata zvine chekuita nenzvimbo dzakabatanidzwa - UI, server cluster, kusimudzira uye maturusi ekutonga, nezvimwe.
Shanduko iyi yakarerutsa basa redu rekutamira kune yazvino vhezheni yechiyero. Saka, vhezheni 1C:Enterprise 8.3.14 (mukuvandudza, kuburitswa kwakarongerwa kutanga kwegore rinouya) yakatoendeswa kune mwero.
Mushure mekutama, vagadziri vane zvimwe zvingasarudzwa. Kana pakutanga taive neyedu yakagadziridzwa vhezheni yeSTL uye imwe std namespace, ikozvino tine makirasi akajairwa kubva kune akavakirwa-mukati compiler raibhurari mune std namespace, mune stdx namespace - mitsara yedu nemidziyo zvakagadziridzwa kumabasa edu, mukuwedzera - the yazvino vhezheni yeboost. Uye mugadziri anoshandisa iwo makirasi akanyatsokodzera kugadzirisa matambudziko ake.
Iyo "yekuzvarwa" kuitiswa kwevanofambisa vanovaka inobatsirawo mukusimudzira (
Chipunu chetara
Zvichida zvisingafadzi (asi zvisiri kutsoropodza) mhedzisiro yekutama ndeyekuti takatarisana nekuwedzera kwevhoriyamu.
Source: www.habr.com