Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 | 2 | 3 | 4 |

 

  Вопрос: Как запустить??? Добавлено: 24.07.04 18:40  

Автор вопроса:  Stas2k

Ответить

  Ответы Всего ответов: 52  

Номер ответа: 31
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #31
Добавлено: 27.07.04 10:44
CyRax, я вот впервые в жизни взял почитать Рихтера, дабы подкрепить свои практические знания, теорией :) И вот что пишет умный чел. по этому поводу (по поводу загрузки нескольких копий одной и той же DLL)

-------------------------

Экономия памяти. Если одну и ту же DLL использует несколько приложений, в оперативной памяти может храниться только один ее экземпляр, доступный этим приложениям. Пример — DLL-версия библиотеки С/С++. Ею пользуются многие приложения. Если всех их скомпоновать со статически подключаемой версией этой библиотеки, то код таких функций, как sprintf, strcpy, malloc и др., будет многократно дублироваться в памяти. Но если они компонуются с DLL-версией библиотеки С/С++, в памяти будет присутствовать лишь одна копия кода этих функций, что позволит гораздо эффективнее использовать оперативную память.

------------

Может я, что-то не верно понял, но...


Павел, и все-же не может юыть чтобы код виртуальной машины вызывался быстрее чем машинный. Ну не может такого быть... Там попросту ступеней обработки, как минимум, раза в три больше...
А вот то что мужик поспорил... Тоже маловероятно... Код Си, натболее чистый, в плане бесполезных вызовов и манипуляций со стеком, И работает он пусть в несколько десятков раз медленней сем ассемблерный, но это терпимо...
FW же нужно загрузить, передать ему данные, он сделает вычисления (при том что сам-то FW наверняка использует машинный код, иначе как бы его понимал х86 наш...) и отдать все это дело обратно приложению... На все это тратятся тики процессора десятками тысяч...
Единственное оправдание, это то что CPP отвратительно работает с числами (уж какими, я там не знаю, но вероятно float... но это очень маловероятно...)

Ну а с ассемблером-то конечно же ни один высокоуровневый язык сравнивать не стоит...

Ответить

Номер ответа: 32
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #32
Добавлено: 27.07.04 10:51
Таксь... О .Net с дилетантами больше не разговариваю..

А с sne поговорить все же приятно :)
Я все же не думаю, что операции выполняет FW.... Судя по информации из
многих источников, IL-код компилируется в машинный код при первом
запуске программы и затем спокойно исполняется... CLR служит лишь так
сказать, надзирателем над действиями кода...
Кстати, Sharp вроде обещал разобраться в принципе функционировании
.NET летом.. Лето уже проходит, а Sharp'а не слыхать :(























Ответить

Номер ответа: 33
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #33
Добавлено: 27.07.04 11:39
 sne,
 Чем отличается статическая линковка от динамической?

Ответить

Номер ответа: 34
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #34
Добавлено: 27.07.04 11:42
 Ну и в догонку. С чего это ты взял что
>CPP отвратительно работает с числами (уж какими, я там не знаю, но вероятно float...
 Как ты проверял?

Ответить

Номер ответа: 35
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #35
Добавлено: 27.07.04 11:53
 А вот мне честно говоря не верится что 60 МБ .NET FW все ушли на рантаймовую проверку за действиями исполняемого кода.

Ответить

Номер ответа: 36
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #36
Добавлено: 27.07.04 12:58
Ну я же говорю, что человек просто не врубается в суть...
бОльшая часть .Net FW - это библиотека классов .NET, которая
предоставляет разработчикам удобные средства для работы со всем на
свете: WinForms, графика, файловая система, сеть, веб, XML,
криптография, БД и иже с ними.

Опять же добавлю, что все эти возможности можно реализовать и без
библиотеки классов (используя только необходимый минимум) с
использованием неуправляемого кода: Win32API и COM.

А остальное - компиляторы (vbc, csc и т.д.), JIT-compiler, CLR,
JIT-дебаггер, некоторые прикладные средства для управления .Net FW, в
частности для работы с GAC, проверки и создания ЦП сборок, управления
безопасностью FW, ядро ASP .NET и др.

Ответить

Номер ответа: 37
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #37
Добавлено: 27.07.04 13:07
Павел, думаешь !?
Т.е. это уж получается совсем гибрил какой-то :)))
Тут же и машинных код, тут же и команды для FW'ка...
Хотя мне все-равно с трудом верится, даже если генерируется машинный код, что он настолько "чист", что превосходит нынешний VC...

При статической ликовке, все за тебя делает компилятор... Тебе остается только брать готовенькое и использовать...
DllEntry/LibMain вызывается при загрузке программы.

При динамической линковке, ты в состоянии сам загрузить/выгрузить библиотеку из памяти... Благо так устроены плагины...
DllEntry/LibMain вызывается при подключении DLL к процессу.

И в том и другом случае DllEntry/LibMain вызывается в то время, как ее копия будет спроектирована в адресное пространство процесса...

Я не претендую на верность этого мнения, т.к. я ничего не читал по этолй теме, и исхожу чисто из своих наблюдений и своего понимания...


--------
 Ну и в догонку. С чего это ты взял что
>CPP отвратительно работает с числами (уж какими, я там не знаю, но вероятно float...
 Как ты проверял?
--------
Нет, это всего-лишь предположение как может программа на C# выиграть по скорости у машинного кода VC... Я же сам сказал, что это маловероятно!
Разумеется я этого не проверял, на то оно и предположение ;)


> А вот мне честно говоря не верится что 60 МБ .NET FW все ушли на рантаймовую проверку за действиями исполняемого кода.

А по-моему нехилая часть ушла на ЭУ, еще на классы, на обработку ошибок... Возможно, конечно же, что и на самом деле в математике там используется машинный код... Хотя это в действительности лишь предположение...

Ответить

Номер ответа: 38
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #38
Добавлено: 27.07.04 13:10
Опять же добавлю, что все эти возможности можно реализовать и без
библиотеки классов (используя только необходимый минимум) с
использованием неуправляемого кода: Win32API и COM.

Угу, минимум и при этом все же требуется РанТайм :(
Если MS сделали фишку как в Дельфи/Borland CPP, это отключение рантайма (там это VCL), я бы очень активно использовал бы новенький VB... и писал бы все на АПИ, ну дак нет же, упертые MS, перекрыли все пути к отступлению, да еще и не доделали конвертор из VB в .NET...

Ответить

Номер ответа: 39
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #39
Добавлено: 27.07.04 13:50
 sne,
 Я не спрашивал что нужно делать при статической и динамической линковках. Я спрашивал что происходит в результате.
 Так я тебе объясню. При статической линковке линкер сшивает вместе все библиотеки в один файл.
 При динамической происходит в принципе тоже самое, но только это делает уже не линковщик, поставляемый вместе с компилятором, а линковщик системы. Он сшивает все модули динамически в памяти, а не в одном файле как при статической линковке. Это замедляет скорость запуска программы, но уменьшает размер исполняемого файла или библиотеки.
 Программа, написанная к примеру на VB6, в памяти занимает вовсе не размер экзешника, а MSVBVM60.DLL плюс экзешник. И так для каждой копии программы. Если бы не было динамической линковки, то каждая программа на VB6 занимала бы по 1.5 МБ на диске.
А так она занимает от 14 кБ. Но это не отменяет того что реальный размер её в памяти все равно будет включать размер виртуальной машины.

 Тебе это тяжело понять потому что ты программировал исключительно под Win32. Я же прошёл весь этап от ДОС. Причём уже в то время, когда ДОС вышел из употребления. Не зря ведь ассемблерщики советуют начинать программировать под ДОС. Это вовсе не дань традиции, это помогает лучше понимать что реально происходит в системе.

Ответить

Номер ответа: 40
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #40
Добавлено: 27.07.04 13:51
 sne,
 Я не спрашивал что нужно делать при статической и динамической линковках. Я спрашивал что происходит в результате.
 Так я тебе объясню. При статической линковке линкер сшивает вместе все библиотеки в один файл.
 При динамической происходит в принципе тоже самое, но только это делает уже не линковщик, поставляемый вместе с компилятором, а линковщик системы. Он сшивает все модули динамически в памяти, а не в одном файле как при статической линковке. Это замедляет скорость запуска программы, но уменьшает размер исполняемого файла или библиотеки.
 Программа, написанная к примеру на VB6, в памяти занимает вовсе не размер экзешника, а MSVBVM60.DLL плюс экзешник. И так для каждой копии программы. Если бы не было динамической линковки, то каждая программа на VB6 занимала бы по 1.5 МБ на диске.
А так она занимает от 14 кБ. Но это не отменяет того что реальный размер её в памяти все равно будет включать размер виртуальной машины.

 Тебе это тяжело понять потому что ты программировал исключительно под Win32. Я же прошёл весь этап от ДОС. Причём уже в то время, когда ДОС вышел из употребления. Не зря ведь ассемблерщики советуют начинать программировать под ДОС. Это вовсе не дань традиции, это помогает лучше понимать что реально происходит в системе.

Ответить

Номер ответа: 41
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #41
Добавлено: 27.07.04 13:56
 И что ты привязался к этой математике. Вся математика реализована через инструкции сопроцессора и одинакова для всех языков. В каком стиле написан сам компилятор в таком и "математика". Изобретать там ничего не надо.

Ответить

Номер ответа: 42
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #42
Добавлено: 27.07.04 14:55
Будет, но он не будет загружать ее из файла вновь, он возьмет уже готовый образ, я не прав !?

Ответить

Номер ответа: 43
Автор ответа:
 ⊗WaX⊗



Вопросов: 26
Ответов: 325
 Web-сайт: sapfir.cift.ru
 Профиль | | #43
Добавлено: 27.07.04 15:06
2 Павел
Жму руку за долготерпение
2 CyRax
Не хотел бы я пригласить тебя в гости, думается мне ты бы бегал ошалело по моей квартире и орал диван это пошло нужно спать на лавке сделанной топором вручную, спать нужно на полу, а есть только геркулесовую кашу. Сухую
И вооьще незнакомыи людям замят и навязывают собственное мнение только подростки и люди с неслажившейся личной жизнью
SEE YA

Ответить

Номер ответа: 44
Автор ответа:
 ⊗WaX⊗



Вопросов: 26
Ответов: 325
 Web-сайт: sapfir.cift.ru
 Профиль | | #44
Добавлено: 27.07.04 15:07
SORRY хамят

Ответить

Номер ответа: 45
Автор ответа:
 Павел



Администратор

ICQ: 326066673 

Вопросов: 368
Ответов: 5968
 Web-сайт: www.vbnet.ru
 Профиль | | #45
Добавлено: 27.07.04 15:42
Ох... Говорил я вам: не начинайте про .NET :))))

Ответить

Страница: 1 | 2 | 3 | 4 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам