MSIL to native
7 отговора
304 прегледа
MSIL to native
Zdraveite!
Ot skoro razkykvam C# , interesuvame ima li na4in da si kompiliram edno .exe ot MSIL do obiknovenno .exe , prosto iskam da si startiram tova .exe na koqto i da e ma6ina s Windows bez da ima nujda da instaliram .NET Framework
Ot skoro razkykvam C# , interesuvame ima li na4in da si kompiliram edno .exe ot MSIL do obiknovenno .exe , prosto iskam da si startiram tova .exe na koqto i da e ma6ina s Windows bez da ima nujda da instaliram .NET Framework
Re: MSIL to native
Ima nachin. Kazwa se Native Image Generator (ngen.exe). Razprostranqwa se zaedno s .NET Framework-a.
Re: MSIL to native
прегледай пак наброските в документацията около .НЕТ-а....
нген-а прави компилацията до нейтив код (спестява първия пас на JIT компилатора) - т.е. превежда мсил-а в нейтив инструкции т.е. прави .ехе файл и го слага в кеша на компилираните асемблита.
ОБАЧЕ това не означава, че НЕ трябва да имаш .НЕТ фреймуърк. Всички функции, целия мениджд код рапинг, е в .нет рън-тайм-а (основната част е mscoree.dll).
Т.е. .НЕТ фреймуърка ТРЯБВА да е инсталиран, за да можеш да стартираш .ехе-то.
Тва е се едно нормално да компилираш сорс с Вижуал Ц и да нямаш msvcrt.dll-a.
Плюс тва ползите от тази предварителна компилация са спорни. JIT-a първо пуска компилатора до нейтив код и след тва прави оптимизации (или поне теоретично ни трябвало да е така) спрямо текущото състояние на компа.
С нген-а тези неща не става.
There are 10 types of people in this world one who understand binary jokes and one who not
нген-а прави компилацията до нейтив код (спестява първия пас на JIT компилатора) - т.е. превежда мсил-а в нейтив инструкции т.е. прави .ехе файл и го слага в кеша на компилираните асемблита.
ОБАЧЕ това не означава, че НЕ трябва да имаш .НЕТ фреймуърк. Всички функции, целия мениджд код рапинг, е в .нет рън-тайм-а (основната част е mscoree.dll).
Т.е. .НЕТ фреймуърка ТРЯБВА да е инсталиран, за да можеш да стартираш .ехе-то.
Тва е се едно нормално да компилираш сорс с Вижуал Ц и да нямаш msvcrt.dll-a.
Плюс тва ползите от тази предварителна компилация са спорни. JIT-a първо пуска компилатора до нейтив код и след тва прави оптимизации (или поне теоретично ни трябвало да е така) спрямо текущото състояние на компа.
С нген-а тези неща не става.
There are 10 types of people in this world one who understand binary jokes and one who not
Re: MSIL to native
..ve4e go probvax ,no toi samo ke6ira kompiliraniq kod i se obry6ta direktno kym nego , no ne vidqx da syzdava .exe !
Re: MSIL to native
Няма начин!
.NET Framework е с такава архитектура, че зависи много сериозно от стандартните си библиотеки (Base Class Library) и от стандартните .NET-ски типове (т. нар. Common Type System).
Ако има компилатор, то той трябва да вкара целия Runtime Execution Engine в това EXE-то и ще стане като онзи менте компилатор за Java (даже забравих как се казва), дето ти прави 20 MB .EXE файл и вкарва в него цялата виртуална машина. Това, че има JIT-compiler, не означава, че кодът е неуправляван. Пак се следи за code-based security, за разни атрибути, пак assembly-тата си имат метаданни, пак не можеш да препълниш масив или да омажеш типовете на ниско ниво. По идея намя начин. Кодът е управляван.
Идеята на .NET е да бъде managed execution environment, а не просто поредната версия на Visual C++ и другите отпадъчни M$ технологии като примерно MFC и Visual Basic + ASP. И не ми казвайте че не са отпадъчни технологии, защото самите M$ се опитват все-повече да не ги поддържат и да не ги ползват, освен ако не се налага (примерно ако трябва да се дописва стар проект, изграден върху тях).
Светлин Наков
[линк]
.NET Framework е с такава архитектура, че зависи много сериозно от стандартните си библиотеки (Base Class Library) и от стандартните .NET-ски типове (т. нар. Common Type System).
Ако има компилатор, то той трябва да вкара целия Runtime Execution Engine в това EXE-то и ще стане като онзи менте компилатор за Java (даже забравих как се казва), дето ти прави 20 MB .EXE файл и вкарва в него цялата виртуална машина. Това, че има JIT-compiler, не означава, че кодът е неуправляван. Пак се следи за code-based security, за разни атрибути, пак assembly-тата си имат метаданни, пак не можеш да препълниш масив или да омажеш типовете на ниско ниво. По идея намя начин. Кодът е управляван.
Идеята на .NET е да бъде managed execution environment, а не просто поредната версия на Visual C++ и другите отпадъчни M$ технологии като примерно MFC и Visual Basic + ASP. И не ми казвайте че не са отпадъчни технологии, защото самите M$ се опитват все-повече да не ги поддържат и да не ги ползват, освен ако не се налага (примерно ако трябва да се дописва стар проект, изграден върху тях).
Светлин Наков
[линк]
Редактирано от HAKOB на
Re: MSIL to native
Не отпадъчни ами упадъчни (а ВБ е упадъчен още от момента на създаването си ), все таки обаче критичните откъм време за изпълнение приложения все още ги правят на Ц++ и при това НЕ на managed C++.
Въпреки всичките изявления за "small performance penalty" за ЦЛРa (рън-тайма), все още никак не е малкo.
Подчертавам "все още", защото нещата определено вървят към подобрение. С# 2.0 спецификацията дава надежда.
( нали човек от Борланд е шеф там на екипа та нема как, чудех се аз що Ц#-а тук таме ми мяза на Делфи
)
There are 10 types of people in this world one who understand binary jokes and one who not
Въпреки всичките изявления за "small performance penalty" за ЦЛРa (рън-тайма), все още никак не е малкo.
Подчертавам "все още", защото нещата определено вървят към подобрение. С# 2.0 спецификацията дава надежда.
( нали човек от Борланд е шеф там на екипа та нема как, чудех се аз що Ц#-а тук таме ми мяза на Делфи
There are 10 types of people in this world one who understand binary jokes and one who not
VC++
".... а не просто поредната версия на Visual C++ и другите отпадъчни M$ технологии ...."
Visual C++ е незаменимо средство за разработка, когато става дума за производителност и тогава разни бози от сорта на Java и .NET просто не вървят! Така че помисли малко преди да говориш за "отпадъчни" технологии ... Виж за MFC-то мога да се съглася донякъде
Visual C++ е незаменимо средство за разработка, когато става дума за производителност и тогава разни бози от сорта на Java и .NET просто не вървят! Така че помисли малко преди да говориш за "отпадъчни" технологии ... Виж за MFC-то мога да се съглася донякъде