динамический рантайм против статического
От: gid_vvp  
Дата: 21.12.09 17:08
Оценка:
Привет

подскажите плиз плюсы и минусы обоих рантаймов вообще и для MS VC++ в часности

например в статическом рунтайме от студии течёт type_id::name
или это
Автор(ы): Роман Хациев
Дата: 27.02.2002
Если вы пытались работать с экземплярами классов STL, передавая их в DLL, или получая оттуда, а потом бросили это занятие из-за непонятных ошибок, возникающих в вашей программе, то эта заметка для вас. Даже если видимых проблем в вашей программе нет, то все равно прочитайте эту заметку, чтобы знать что делать, когда они появятся :)
Re: динамический рантайм против статического
От: blackhearted Украина  
Дата: 21.12.09 18:26
Оценка:
Здравствуйте, gid_vvp, Вы писали:

_>Привет


_>подскажите плиз плюсы и минусы обоих рантаймов вообще и для MS VC++ в часности


_>например в статическом рунтайме от студии течёт type_id::name

_>или это
Автор(ы): Роман Хациев
Дата: 27.02.2002
Если вы пытались работать с экземплярами классов STL, передавая их в DLL, или получая оттуда, а потом бросили это занятие из-за непонятных ошибок, возникающих в вашей программе, то эта заметка для вас. Даже если видимых проблем в вашей программе нет, то все равно прочитайте эту заметку, чтобы знать что делать, когда они появятся :)


ИМХО, если несколько модулей обмениваются между собой — используй динамический рантайм.
Re: динамический рантайм против статического
От: dmitry_npi Россия  
Дата: 23.12.09 10:27
Оценка:
Здравствуйте, gid_vvp, Вы писали:

_>подскажите плиз плюсы и минусы обоих рантаймов вообще и для MS VC++ в часности

_>или это
Автор(ы): Роман Хациев
Дата: 27.02.2002
Если вы пытались работать с экземплярами классов STL, передавая их в DLL, или получая оттуда, а потом бросили это занятие из-за непонятных ошибок, возникающих в вашей программе, то эта заметка для вас. Даже если видимых проблем в вашей программе нет, то все равно прочитайте эту заметку, чтобы знать что делать, когда они появятся :)

Имею приложение из пары десятков dll-библиотек, в интерфейсах используются stl объекты. Приложение началось на vc2003, побывало на vc2005, теперь на 2008. Полёт нормальный. Главное не забывать контролировать, что у всех своих библиотек рантайм динамический. А насчет внешней среды, тут лучше нейтральные интерфейсы, а то ведь есть еще и C++Builder, и много чего еще.
На 2005 и 2008 есть небольшие трудности с распространением рантайма — ну тут надо просто один раз внимательно изучить msdn. Манифесты и прочее...

_>например в статическом рунтайме от студии течёт type_id::name

Еще один плюс в пользу динамического.
Атмосферная музыка — www.aventuel.net
Re: динамический рантайм против статического
От: gear nuke  
Дата: 24.12.09 07:36
Оценка:
Здравствуйте, gid_vvp, Вы писали:

_>например в статическом рунтайме от студии течёт type_id::name


Имеется ввиду демангленное type_info::name()? Так оно вроде не течёт, а "продолжает жить до завершения приложения" Это серьёзная проблема? Если же добавлять освобождение памяти в atexit, навскидку — придётся избегать проблем с очередностью вызовов. Правда, я не знаю как обстоит на самом деле, и чем dll отличается.
.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[2]: динамический рантайм против статического
От: gid_vvp  
Дата: 24.12.09 07:41
Оценка:
_>>например в статическом рунтайме от студии течёт type_id::name

GN>Имеется ввиду демангленное type_info::name()? Так оно вроде не течёт, а "продолжает жить до завершения приложения"


собственно, это тоже самое что и течёт

GN> Это серьёзная проблема?


впринципе это проблема

GN> Если же добавлять освобождение памяти в atexit, навскидку — придётся избегать проблем с очередностью вызовов. Правда, я не знаю как обстоит на самом деле, и чем dll отличается.


а можно немного подробнее, что имелось ввиду?
Re[3]: динамический рантайм против статического
От: gear nuke  
Дата: 24.12.09 08:37
Оценка:
Здравствуйте, gid_vvp, Вы писали:

_>собственно, это тоже самое что и течёт


По крайней мере множественные вызовы не приводят к новым аллокациям. Хотя это слишком оптимистично, стоит добавить про однопоточность

GN>> Это серьёзная проблема?


_>впринципе это проблема


Это понятно. Хочется понять, насколько важно её решить, она есть не только у MS.

_>а можно немного подробнее, что имелось ввиду?


Можно куда-то сохранить адрес демангленной строки, что бы освободить при завершении приложения. Однако, в деструкторах статических объектов тоже может использоваться type_info::name() что придётся учесть.

Самый простой способ решить — возвращать замангленное имя.
.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Re[4]: динамический рантайм против статического
От: gid_vvp  
Дата: 24.12.09 09:11
Оценка:
GN>Самый простой способ решить — возвращать замангленное имя.

собственно хочется выяснить есть ли у динамического рантайма проблемы и минусы которые сведут на нет решение проблемы с утечкой
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.