Esikhathini esithile esidlule (ekwindla ka-2016), ngesikhathi sokuthuthukiswa kwenguqulo elandelayo ye-1C:Inkundla yobuchwepheshe bebhizinisi, kwaphakama umbuzo phakathi kwethimba lokuthuthukisa mayelana nokusekela izinga elisha.
Kulabo abangazi, i-1C:Enterprise iyindawo yokuthuthukiswa okusheshayo kwezinhlelo zokusebenza zebhizinisi ze-cross-platform kanye nesikhathi sokusebenza sokwenza kwazo kuma-OS nama-DBMS ahlukene. Ngokuvamile, umkhiqizo uqukethe:
Iqoqo Leseva Yohlelo Lokusebenza , isebenza ku-Windows ne-LinuxIkhasimende , ukusebenza neseva nge-http(ama) noma iphrothokholi yayo kanambambili, isebenza ku-Windows, Linux, macOSIklayenti lewebhu , esebenza ku-Chrome, Internet Explorer, Microsoft Edge, Firefox, Safari browsers (ebhalwe ku-JavaScript)- Indawo yokuthuthukisa (
Isilungisi ), isebenza kuWindows, Linux, macOS Amathuluzi okuphatha amaseva wohlelo lokusebenza, asebenza kuWindows, Linux, macOSIklayenti leselula , ixhuma kuseva nge-http(ama), isebenza kumadivayisi eselula asebenzisa i-Android, iOS, WindowsIpulatifomu yeselula β uhlaka lokudala izinhlelo zokusebenza zeselula ezingaxhunyiwe ku-inthanethi ezinekhono lokuvumelanisa, ezisebenza ku-Android, iOS, Windows- Imvelo yentuthuko
1C:Amathuluzi Okuthuthukisa Ibhizinisi , ebhalwe nge-Java - Iseva
Amasistimu Wokusebenzelana
Sizama ukubhala ikhodi efanayo yezinhlelo zokusebenza ezihlukene ngangokunokwenzeka - isisekelo sekhodi yeseva sivamile ngo-99%, isisekelo sekhodi yeklayenti simayelana nama-95%. I-1C:Inkundla yobuchwepheshe bebhizinisi ibhalwe ngokuyinhloko ngo-C++ futhi izici zekhodi ezilinganiselwe zinikezwe ngezansi:
- Imigqa eyizigidi eziyi-10 yekhodi ye-C++,
- Amafayela ayizinkulungwane eziyi-14,
- amakilasi ayizinkulungwane ezingama-60,
- izindlela eziyingxenye yesigidi.
Futhi zonke lezi zinto bekufanele zihunyushelwe ku-C++14. Namuhla sizokutshela ukuthi sikwenze kanjani lokhu nokuthi yini esihlangabezane nayo kulolu hlelo.
Umusho wokuzihlangula
Yonke into ebhalwe ngezansi mayelana nomsebenzi ongasheshi/osheshayo, (hhayi) ukusetshenziswa kwenkumbulo okukhulu ngokusetshenziswa kwamakilasi ajwayelekile kumalabhulali ahlukahlukene kusho into eyodwa: lokhu kuyiqiniso KITHI. Kungenzeka ukuthi ukuqaliswa okujwayelekile kuzofanelana kangcono nemisebenzi yakho. Siqale kweyethu imisebenzi: sithathe idatha eyayijwayelekile kumakhasimende ethu, sasebenzisa izimo ezijwayelekile kuwo, sabheka ukusebenza, inani lememori esetshenzisiwe, njll., futhi sahlaziya ukuthi thina namakhasimende ethu sanelisekile ngemiphumela enjalo noma cha. . Futhi benza kuye ngokuthi.
Esinakho
Ekuqaleni, sabhala ikhodi yesikhulumi se-1C:Enterprise 8 sisebenzisa i-Microsoft Visual Studio. Iphrojekthi yaqala ekuqaleni kwawo-2000 futhi sasinenguqulo ye-Windows kuphela. Ngokwemvelo, kusukela ngaleso sikhathi ikhodi ithuthukiswe ngenkuthalo, izindlela eziningi zibhalwe kabusha ngokuphelele. Kodwa ikhodi yabhalwa ngokwezinga lika-1998, futhi, isibonelo, abakaki bethu be-engeli yesokudla bahlukaniswa yizikhala ukuze ukuhlanganiswa kuphumelele, kanje:
vector<vector<int> > IntV;
Ngo-2006, ngokukhishwa kwenguqulo yesikhulumi 8.1, saqala ukusekela i-Linux futhi sashintshela kumtapo wolwazi ojwayelekile wenkampani yangaphandle.
Iyunithi yezinhlamvu yethu isuselwe emibonweni yokuthuthukisa iyunithi yezinhlamvu evezwe emuva ekuqaleni kwawo-2000
Ulayini wethu usebenzise ubuchwepheshe obubili obuyinhloko:
- Ngamanani amafushane, i-buffer yangaphakathi entweni yeyunithi yezinhlamvu ngokwayo iyasetshenziswa (engadingi ukwabiwa kwememori eyengeziwe).
- Kubo bonke abanye, kusetshenziswa imishini
Kopisha Ekubhaleni . Inani leyunithi yezinhlamvu ligcinwa endaweni eyodwa, futhi isibali sereferensi sisetshenziswa phakathi nomsebenzi/ukulungiswa.
Ukuze kusheshiswe ukuhlanganiswa kweplathifomu, asibandakanyi ukusetshenziswa kokusakaza kokuhlukile kwethu kwe-STLPort (esingazange sikusebenzise), lokhu kusinike ukuhlanganiswa okusheshayo okungaba ngu-20%. Kamuva kwadingeka sisebenzise okulinganiselwe
Indlela yesithathu
Lapho sithuthela ezingeni le-C++14, sicabangele lezi zinketho ezilandelayo:
- Thuthukisa i-STLPort esiyishintshe ibe sezingeni le-C++14. Inketho inzima kakhulu, ngoba ... ukusekelwa kwe-STLPort kwanqanyulwa ngo-2010, futhi kuzodingeka sizakhele yonke ikhodi yayo ngokwethu.
- Ukushintshela kokunye ukusetshenziswa kwe-STL okuhambisana ne-C++14. Kufiseleka kakhulu ukuthi lokhu kuqaliswa kube okweWindows neLinux.
- Lapho uhlanganisela i-OS ngayinye, sebenzisa umtapo wolwazi owakhelwe kumhlanganisi ohambisanayo.
Inketho yokuqala yenqatshwe ngokuphelele ngenxa yomsebenzi omningi.
Sacabanga ngenketho yesibili isikhathi esithile; kuthathwa njengekhandidethi
Futhi sikhethe indlela yesithathu.
Uguquko
Ngakho-ke, kudingeke ukuthi esikhundleni sokusetshenziswa kwe-STLPort sifake imitapo yolwazi yabahlanganisi abahambisanayo (i-Visual Studio 2015 ye-Windows, i-gcc 7 ye-Linux, i-clang 8 ye-macOS).
Ngenhlanhla, ikhodi yethu yabhalwa ikakhulukazi ngokweziqondiso futhi ayizange isebenzise zonke izinhlobo zamaqhinga ahlakaniphile, ngakho ukuthuthela emitapo yolwazi emisha kwaqhubeka ngokushelela, ngosizo lwemibhalo ethathela indawo amagama ezinhlobo, amakilasi, izindawo zamagama kanye nokuhlanganisa emthonjeni. amafayela. Ukuthutha kuthinte amafayela omthombo angu-10 (kwangu-000). i-wchar_t ithathelwe indawo ngu-char14_t; sinqume ukuyeka ukusetshenziswa kwe-wchar_t, ngoba I-char000_t ithatha amabhayithi angu-16 kuwo wonke ama-OS futhi ayonakalisi ukusebenzisana kwekhodi phakathi kweWindows ne-Linux.
Kwakukhona izigigaba ezincane. Isibonelo, ku-STLPort i-iterator ingase iphonswe ngokungagunci esikhombi sento ethile, futhi kwezinye izindawo kukhodi yethu kwasetshenziswa lokhu. Emitapo yolwazi emisha kwakungasenakwenzeka ukwenza lokhu, futhi lezi zingxenye kwadingeka zihlaziywe futhi zibhalwe kabusha ngesandla.
Ngakho-ke, ukufuduka kwekhodi kuqedile, ikhodi ihlanganiswe kuwo wonke amasistimu wokusebenza. Isikhathi sokuhlolwa.
Ukuhlolwa ngemva koshintsho kubonise ukwehla kokusebenza (kwezinye izindawo kufika ku-20-30%) kanye nokwanda kokusetshenziswa kwememori (kufika ku-10-15%) uma kuqhathaniswa nenguqulo endala yekhodi. Lokhu, ikakhulukazi, bekungenxa yokusebenza kahle kwamayunithi ezinhlamvu ajwayelekile. Ngakho-ke, kwadingeka siphinde sisebenzise ulayini wethu, oshintshwe kancane.
Isici esithakazelisayo sokuqaliswa kweziqukathi emitapo yolwazi eshumekiwe siphinde savezwa: okungenalutho (ngaphandle kwezinto) std::map kanye ne-std::setha kusukela emitatsheni yolwazi eyakhelwe ngaphakathi yabela inkumbulo. Futhi ngenxa yezici zokuqalisa, kwezinye izindawo kukhodi iziqukathi eziningi ezingenalutho zalolu hlobo ziyadalwa. Iziqukathi ezijwayelekile zenkumbulo zabelwa kancane, engxenyeni eyodwa yempande, kodwa kithina lokhu kwaba bucayi - ezimweni eziningi, ukusebenza kwethu kwehle kakhulu futhi ukusetshenziswa kwememori kwanda (uma kuqhathaniswa ne-STLPort). Ngakho-ke, kukhodi yethu sithathe indawo yalezi zinhlobo ezimbili zeziqukathi ezivela emitapweni yolwazi eyakhelwe ngaphakathi ngokusetshenziswa kwazo kusuka ku-Boost, lapho lezi ziqukathi zingenaso lesi sici, futhi lokhu kuxazulule inkinga ngokunciphisa nokwandisa ukusetshenziswa kwememori.
Njengoba kuvame ukwenzeka ngemuva kwezinguquko ezinkulu kumaphrojekthi amakhulu, ukuphindaphinda kokuqala kwekhodi yomthombo akuzange kusebenze ngaphandle kwezinkinga, futhi lapha, ikakhulukazi, ukusekelwa kokulungisa amaphutha ekusetshenzisweni kweWindows kwafika kahle. Isinyathelo ngesinyathelo saqhubekela phambili, futhi ngentwasahlobo ka-2017 (inguqulo 8.3.11 1C:Enterprise) ukufuduka kwase kuqediwe.
Imiphumela
Ukushintshela ezingeni le-C++14 kusithathe cishe izinyanga eziyisi-6. Ezikhathini eziningi, umthuthukisi oyedwa (kodwa oqeqeshwe kakhulu) ubesebenza kuphrojekthi, futhi esigabeni sokugcina abameleli bamaqembu anomthwalo wemfanelo wezindawo ezithile bajoyina - i-UI, iqoqo leseva, amathuluzi okuthuthukisa nawokuphatha, njll.
Ushintsho lwenze waba lula kakhulu umsebenzi wethu wokuthuthela ezinguqulweni zakamuva zezinga. Ngakho, inguqulo 1C:Enterprise 8.3.14 (eyathuthukiswayo, ukukhishwa okuhlelelwe ekuqaleni konyaka ozayo) isivele idluliselwe ezingeni.
Ngemuva kokuthutha, onjiniyela banezinketho eziningi. Uma phambilini besinenguqulo yethu eguquliwe ye-STL kanye ne-std namespace eyodwa, manje sinezigaba ezijwayelekile ezivela emitapweni yolwazi yeqoqo eyakhelwe ngaphakathi endaweni yamagama ye-std, endaweni yegama ye-stdx - imigqa yethu neziqukathi ezilungiselelwe imisebenzi yethu, ngokuthuthukisa - the inguqulo yakamuva ye-boost. Futhi umthuthukisi usebenzisa lawo makilasi afaneleka kahle ukuxazulula izinkinga zakhe.
Ukuqaliswa "komdabu" kwabakhi abahambayo nakho kuyasiza ekuthuthukisweni (
Isipuni setiyela
Mhlawumbe umphumela ongajabulisi (kodwa hhayi obucayi) wokufuduka ukuthi sibhekene nokwenyuka kwevolumu.
Source: www.habr.com