Сообщение Re[48]: Nemerle через 5 лет - выстрелит или скончается? от 21.10.2014 7:39
Изменено 21.10.2014 7:41 Sinclair
Здравствуйте, alex_public, Вы писали:
_>О, т.е. мы можем взять экземпляр любого класса и разместить его в стеке или как?
Зачем любого? Есть типы, которые хорошо работают с value-семантикой — например, TimeSpan, DateTime, Decimal.
Вот их можно запросто разместить на стеке.
А вот как, и, главное, зачем размещать на стеке объекты типа WebRequest я, простите, не понимаю.
_>Только при условие бесконечной памяти. Я уже кинул Владу ссылку на полезную статью на эту тему. Ну повторю на всякий случай: http://habrahabr.ru/post/188580/.
Не бесконечной, а достаточно большой.
Понятно, что GС даёт оверхед. Но даже в случае предельно ограниченной памяти, хороший GC даёт всего 70% потерь по сравнению с ручным менеджментом.
При двукратном превышении — отставание всего 17%. Начиная с 2.5-кратного превышения, перформанс GC и ручного управления становятся неразличимы.
На минуточку напомню, что мы говорим не о производительности приложения, а о затратах только на memory management. Т.е. если приложение хотя бы половину времени тратит на полезную работу, то разница между подходами к управлению памятью сокращается ещё вдвое.
_>О, т.е. мы можем взять экземпляр любого класса и разместить его в стеке или как?
Зачем любого? Есть типы, которые хорошо работают с value-семантикой — например, TimeSpan, DateTime, Decimal.
Вот их можно запросто разместить на стеке.
А вот как, и, главное, зачем размещать на стеке объекты типа WebRequest я, простите, не понимаю.
_>Только при условие бесконечной памяти. Я уже кинул Владу ссылку на полезную статью на эту тему. Ну повторю на всякий случай: http://habrahabr.ru/post/188580/.
Не бесконечной, а достаточно большой.
Понятно, что GС даёт оверхед. Но даже в случае предельно ограниченной памяти, хороший GC даёт всего 70% потерь по сравнению с ручным менеджментом.
При двукратном превышении — отставание всего 17%. Начиная с 2.5-кратного превышения, перформанс GC и ручного управления становятся неразличимы.
На минуточку напомню, что мы говорим не о производительности приложения, а о затратах только на memory management. Т.е. если приложение хотя бы половину времени тратит на полезную работу, то разница между подходами к управлению памятью сокращается ещё вдвое.
Re[48]: Nemerle через 5 лет - выстрелит или скончается?
Здравствуйте, alex_public, Вы писали:
_>О, т.е. мы можем взять экземпляр любого класса и разместить его в стеке или как?
Зачем любого? Есть типы, которые хорошо работают с value-семантикой — например, TimeSpan, DateTime, Decimal.
Вот их можно запросто разместить на стеке.
А вот как, и, главное, зачем размещать на стеке объекты типа WebRequest я, простите, не понимаю.
_>Только при условие бесконечной памяти. Я уже кинул Владу ссылку на полезную статью на эту тему. Ну повторю на всякий случай: http://habrahabr.ru/post/188580/.
Не бесконечной, а достаточно большой.
Понятно, что GС даёт оверхед. Но даже в случае предельно ограниченной памяти, хороший GC даёт всего 70% потерь по сравнению с ручным менеджментом.
При двукратном превышении — отставание всего 17%. Начиная с 2.5-кратного превышения, перформанс GC и ручного управления становятся неразличимы.
На минуточку напомню, что мы говорим не о производительности приложения, а о затратах только на memory management. Т.е. если приложение хотя бы половину времени тратит на полезную работу, то разница между подходами к управлению памятью сокращается ещё вдвое.
И это — в обмен на гарантии type safety!
Для очень широкого класса задач это более чем приемлемая цена.
_>О, т.е. мы можем взять экземпляр любого класса и разместить его в стеке или как?
Зачем любого? Есть типы, которые хорошо работают с value-семантикой — например, TimeSpan, DateTime, Decimal.
Вот их можно запросто разместить на стеке.
А вот как, и, главное, зачем размещать на стеке объекты типа WebRequest я, простите, не понимаю.
_>Только при условие бесконечной памяти. Я уже кинул Владу ссылку на полезную статью на эту тему. Ну повторю на всякий случай: http://habrahabr.ru/post/188580/.
Не бесконечной, а достаточно большой.
Понятно, что GС даёт оверхед. Но даже в случае предельно ограниченной памяти, хороший GC даёт всего 70% потерь по сравнению с ручным менеджментом.
При двукратном превышении — отставание всего 17%. Начиная с 2.5-кратного превышения, перформанс GC и ручного управления становятся неразличимы.
На минуточку напомню, что мы говорим не о производительности приложения, а о затратах только на memory management. Т.е. если приложение хотя бы половину времени тратит на полезную работу, то разница между подходами к управлению памятью сокращается ещё вдвое.
И это — в обмен на гарантии type safety!
Для очень широкого класса задач это более чем приемлемая цена.