Re[23]: Java vs C# vs C++
От: Evgeny.Panasyuk Россия  
Дата: 04.10.15 16:04
Оценка:
Здравствуйте, Ikemefula, Вы писали:

EP>>Подожди, это же ты сказал что у Java байткод нормальный, что я "мусолю булшит", что нужно сравнивать на одной платформе, и на ней скорость не будет сильно отличаться. Вот я и предлагаю тест на одной платформе

I>Тест на одной платформе — это оба компилера писаные именно под эту платформу.

Всё, занавес, сова треснула по швам.
Re[38]: Java vs C# vs C++
От: Klikujiskaaan КНДР  
Дата: 04.10.15 16:13
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Сравниваем. Вариант Boost.Range:

EP>1. Лаконичнее, красивее.
EP>2. Быстрее. Там под копотом кстати те самые итераторы.
EP>3. Выдаёт bidirectional последовательность вместо forward/single pass.

1. Нет, полное убожество. Enumerable.Range.Select куда как человечнее.
2. Где замеры скорости?
3. Ок.
4. linq вариант ленивый, а плюсовое убожество?
Re[37]: Java vs C# vs C++
От: Evgeny.Panasyuk Россия  
Дата: 04.10.15 16:13
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>>>Мало того, за кучей может следить GC в отдельном потоке.

EP>>Точно — конкурентная гадость, которая скорей всего не lock-free.
S>Специально не поленился и поисал для тебя
S>http://www.oszone.net/18549/
S>

S> .NET 4.5 мы внесли некоторые изменения для более эффективного использования фрагментов памяти в LOH, особенно в плане того, как мы управляем списком свободной памяти. Изменения относятся к сбору мусора (garbage collection, GC) как на рабочей станции, так и сервере. Но обратите внимание на то, что это не отменяет лимит в 85 000 байтов на размер объекта в LOH.


Я на эту тему даже тест проводил
Автор: Evgeny.Panasyuk
Дата: 17.10.13


S>

S>Фоновый GC для сервера В .NET 4 мы включили фоновый GC для рабочих станций. С того времени мы все чаще наблюдаем использование куч с размерами в диапазоне от нескольких до десятков гигабайт. Даже такому оптимизированному параллельному сборщику, как у нас, могут потребоваться секунды на сбор столь больших куч, а значит, потоки приложения будут блокированы примерно на то же время. Введение фонового GC для сервера обеспечивает поддержку нашим серверным сборщиком параллельных процедур сбора. Это сводит к минимуму длительные блокирующие операции сбора мусора, почти не влияя на высокую пропускную способность приложения.

S>Если вы используете серверный GC, вам не нужно ничего делать для того, чтобы задействовать преимущества этой новой функциональности; фоновый GC для сервера выполняется автоматически. Высокоуровневые характеристики фонового GC одинаковы как для клиента, так и для сервера:
S>•в фоне может выполняться только полный GC (объектов поколения 2);
S>•при фоновом GC сжатие не осуществляется;
S>•активный (не в фоне) GC (объектов поколений 0 и 1) возможен в процессе фонового GC. Серверный GC выполняется выделенными серверными GC-потоками;
S>•полностью блокирующий GC также осуществляется выделенными серверными GC-потоками.


А зачем ты привёл это? Оно как-то опровергает мои тезисы?
Re[39]: Java vs C# vs C++
От: alex_public  
Дата: 04.10.15 16:16
Оценка:
Здравствуйте, Serginio1, Вы писали:

_>>Так EF же генерирует текстовые запросы, не так ли? ) И этот код кто-то должен был написать. Так же как и в C++ есть аналогичные библиотеки.

S>Еще раз Linq это абстракция. Не важно, во что это транслируется

Да, сам Linq (а точнее IEnumerable) — это абстракция (кстати, на мой взгляд весьма сомнительная, но это уже дело вкуса). Только вот сама по себе эта абстракция ничего не может. Чтобы она могла работать с контейнерами, базами данных и т.п. требуется подключение соответствующих библиотек. Так вот в C++ (и не только) есть аналогичные библиотеки с аналогичной функциональностью.

S>На самом деле нужно понять где область применения Net

S>В каких приложениях процент проседания на определенных задачах будет минимален.
S>1. Декстопные приложения где общее время выполнения кода минимально

У меня на десктопе установлено очень много разного софта из разных областей. Так вот написанных на .net там кажется вообще нет. )))

S>2. Серверные ASP.Net HTTP сервисы WCF


Да, это актуальная область для современного .net, особенно с появлением серверного подмножества .net'a с официальной кроссплатформенностью.

S>3. Сейчас есть возможность создавать кроссплатформенные приложения для мобильных приложений и ASP net


В Xamarin весьма специфическая кроссплатформенность. К примеру GUI надо писать заново под каждую платформу.
Re[39]: Java vs C# vs C++
От: Evgeny.Panasyuk Россия  
Дата: 04.10.15 16:22
Оценка: :)
Здравствуйте, Klikujiskaaan, Вы писали:

EP>>Сравниваем. Вариант Boost.Range:

EP>>1. Лаконичнее, красивее.
EP>>2. Быстрее. Там под копотом кстати те самые итераторы.
EP>>3. Выдаёт bidirectional последовательность вместо forward/single pass.
K>1. Нет, полное убожество. Enumerable.Range.Select куда как человечнее.

Полное убожество это вот это:
from value in values
where value > 5
Select new {value* 111}

А вот это: values | filtered(_1 > 5) | transformed(_1 * 111) — лаконичные пайпы известные всем по работе с консолью

K>2. Где замеры скорости?


Можем замерять — не вопрос. Конкретно в этом пример это моё предположение основанное на том, что я видел результирующий ASM в случае C++.
Помимо этого точно быстрее в случае когда нужно обойти задом наперёд — за счёт двунаправленности.

K>4. linq вариант ленивый, а плюсовое убожество?


Так, давай без эмоций — не серьёзно. Вариант Boost.Range — ленивый и двунаправленный. Если же не делать фильтрацию, то вообще Random Access.
Re[39]: Java vs C# vs C++
От: alex_public  
Дата: 04.10.15 16:25
Оценка: +1
Здравствуйте, Serginio1, Вы писали:

_>>А я разве где-то говорил, что тебе надо переходить на C++ или ещё куда-то? )

S> Раз все находится на одном уровне, то какой язык нужно выбрать?
S>Или все таки есть отличия? И вы применяете питон вместо C++.

В начале составляем список языков, которые вообще позволяют решить данную задачу (к примеру для микроконтроллеров там будет всего 1-2 варианта), а потом выбираем из них самое дешёвое (с точки зрения бизнеса) решение.
Re[40]: Java vs C# vs C++
От: Klikujiskaaan КНДР  
Дата: 04.10.15 16:26
Оценка: :)
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Полное убожество это вот это:

EP>
EP>from value in values
EP>where value > 5
EP>Select new {value* 111}
EP>

EP>А вот это: values | filtered(_1 > 5) | transformed(_1 * 111) — лаконичные пайпы известные всем по работе с консолью


Кто такие все? Ты про Шеридана и его клуб анонимных любителей линукса?
Re[37]: Java vs C# vs C++
От: alex_public  
Дата: 04.10.15 16:28
Оценка:
Здравствуйте, Klikujiskaaan, Вы писали:

_>>И в чём отличие от библиотеки? )))

K>http://stackoverflow.com/questions/3057526/framework-vs-toolkit-vs-library

Даже если фреймворк является жирной библиотекой, навязывающей архитектуру приложению, то он всё равно остаётся всего лишь библиотекой. )))
Re[38]: Java vs C# vs C++
От: Klikujiskaaan КНДР  
Дата: 04.10.15 16:29
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Здравствуйте, Klikujiskaaan, Вы писали:


_>>>И в чём отличие от библиотеки? )))

K>>http://stackoverflow.com/questions/3057526/framework-vs-toolkit-vs-library

_>Даже если фреймворк является жирной библиотекой, навязывающей архитектуру приложению, то он всё равно остаётся всего лишь библиотекой. )))


Чукча не читатель, ясно.
Re[41]: Java vs C# vs C++
От: Evgeny.Panasyuk Россия  
Дата: 04.10.15 16:34
Оценка:
Здравствуйте, Klikujiskaaan, Вы писали:

EP>>А вот это: values | filtered(_1 > 5) | transformed(_1 * 111) — лаконичные пайпы известные всем по работе с консолью

K>Кто такие все? Ты про Шеридана и его клуб анонимных любителей линукса?

ВНЕЗАПНО:
C:\Windows\system32>dir | sort

http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/redirection.mspx?mfr=true

Using the pipe operator (|)

The pipe operator (|) takes the output (by default, STDOUT) of one command and directs it into the input (by default, STDIN) of another command. For example, the following command sorts a directory:

dir | sort

In this example, both commands start simultaneously, but then the sort command pauses until it receives the dir command's output. The sort command uses the dir command's output as its input, and then sends its output to handle 1 (that is, STDOUT).

Отредактировано 04.10.2015 16:34 Evgeny.Panasyuk . Предыдущая версия .
Re[42]: Java vs C# vs C++
От: Klikujiskaaan КНДР  
Дата: 04.10.15 16:35
Оценка: :)
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>ВНЕЗАПНО:

EP>
EP>C:\Windows\system32>dir | sort
EP>

EP>http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/redirection.mspx?mfr=true

Ну так ты ВНЕЗАПНО проведи опрос на SO, что людям более знакомо и приятно sql-like синтаксис или пайпы.
Re[43]: Java vs C# vs C++
От: Evgeny.Panasyuk Россия  
Дата: 04.10.15 16:43
Оценка: :)
Здравствуйте, Klikujiskaaan, Вы писали:

EP>>ВНЕЗАПНО:

EP>>
EP>>C:\Windows\system32>dir | sort
EP>>

EP>>http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/redirection.mspx?mfr=true
K>Ну так ты ВНЕЗАПНО проведи опрос на SO,

SO не предназначен для опросов.

K>что людям более знакомо и приятно sql-like синтаксис


Это кстати даже далеко от SQL. Там структурно аналог монадической DO-нотации, а не SQL. От SQL там только подобие ключевых слов.
Re[40]: Java vs C# vs C++
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 04.10.15 16:53
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Здравствуйте, Serginio1, Вы писали:


_>>>Так EF же генерирует текстовые запросы, не так ли? ) И этот код кто-то должен был написать. Так же как и в C++ есть аналогичные библиотеки.

S>>Еще раз Linq это абстракция. Не важно, во что это транслируется

_>Да, сам Linq (а точнее IEnumerable) — это абстракция (кстати, на мой взгляд весьма сомнительная, но это уже дело вкуса). Только вот сама по себе эта абстракция ничего не может. Чтобы она могла работать с контейнерами, базами данных и т.п. требуется подключение соответствующих библиотек. Так вот в C++ (и не только) есть аналогичные библиотеки с аналогичной функциональностью.

EF. Дай ссылочки посмотреть. А внутри Linq деревья выражений.
https://msdn.microsoft.com/ru-ru/library/bb397951.aspx
Я уже приводил ссылки на расширители.

S>>На самом деле нужно понять где область применения Net

S>>В каких приложениях процент проседания на определенных задачах будет минимален.
S>>1. Декстопные приложения где общее время выполнения кода минимально

_>У меня на десктопе установлено очень много разного софта из разных областей. Так вот написанных на .net там кажется вообще нет. )))


S>>2. Серверные ASP.Net HTTP сервисы WCF


_>Да, это актуальная область для современного .net, особенно с появлением серверного подмножества .net'a с официальной кроссплатформенностью.


S>>3. Сейчас есть возможность создавать кроссплатформенные приложения для мобильных приложений и ASP net


_>В Xamarin весьма специфическая кроссплатформенность. К примеру GUI надо писать заново под каждую платформу.

Ну вроде как тут уже договорились, что для каждого GUI свой интерфейс либо HTML 5
и солнце б утром не вставало, когда бы не было меня
Re[38]: Java vs C# vs C++
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 04.10.15 17:01
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:



EP>Я вижу огромное количество статей и советов как не обжечься на GC.

Д
S>>>>Мало того, за кучей может следить GC в отдельном потоке.
EP>>>Точно — конкурентная гадость, которая скорей всего не lock-free.
S>> Я давно не интересовался. Меня GC давно не беспокоит. Только вызываю его при работе с ком.

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

Ну и? Тогда о чем разговор?
S>> Ну так почему столько программистов 1С программирующих на чудовищно медленном интерпретаторе. Значит скорость бизнес слоя в итоге не важна.

EP>И что из этого?

EP>Тема вообще не про то что скорость нужна абсолютно везде, зачем ты пытаешься опровергнуть это?


S>>>> На ваши итераторы без слез смотреть тяжело.

S>>>>...
EP>>>Ты показывал что-то про коллекции?
EP>>>Вот пример Boost.Range для коллекций:
EP>>>
EP>>>values | filtered(_1 > 5) | transformed(_1 * 111)
EP>>>
причём на выходе можно получить bidirectional range.

EP>>>Покажи аналог LINQ — сравним выразительность.
S>>
S>> from value in values
S>>where value > 5
S>>Select new {value* 111}
S>>

S>>или
S>>
S>>values.where(value =>value > 5).Select(value =>value* 111)
S>>


EP>Сравниваем. Вариант Boost.Range:

EP>1. Лаконичнее, красивее.
EP>2. Быстрее. Там под копотом кстати те самые итераторы.
EP>3. Выдаёт bidirectional последовательность вместо forward/single pass.

Мне все равно. А многие подумают, чего это чувак побитовые операции за операции с массивами применяет.
А насчет быстроты то все зависит от компилятора которые могут в теже итераторы и преобразовываться.

S>>>>>>// Этот запрос получает значения периодического реквизита с ID 9697 в порядке убывания даты, времени, и строки документа

S>>>>>>...
S>>>>>>Генерируется следующий запрос
EP>>>>>Это реализуется и в C++, причём с генерацией текста запроса во время компиляции. Подробнейшим образом обсуждалось вот в этой теме
Автор: gandjustas
Дата: 13.04.15
.

S>>>> Генерация текста это далеко от того что называется Linq. В Linq вообще отсутствует понятие текста.
EP>>>В результате генерируется текст запроса, так понятнее
В результате генерируется машинный код на сервере. Есть абстракции. Контекс можно подменить и тогда итогом будет совсем другое.
S>> В итоге мне наплевать, вто что трансформирутся Linq запрос.

EP>Да тут в принципе тоже, я про текст запрос сказал, для того чтобы подчеркнуть что трансформация происходит на этапе компиляции.

Так я от тебя ссылки и не дождался.
и солнце б утром не вставало, когда бы не было меня
Re[41]: Java vs C# vs C++
От: alex_public  
Дата: 04.10.15 17:04
Оценка:
Здравствуйте, Serginio1, Вы писали:

_>>Да, сам Linq (а точнее IEnumerable) — это абстракция (кстати, на мой взгляд весьма сомнительная, но это уже дело вкуса). Только вот сама по себе эта абстракция ничего не может. Чтобы она могла работать с контейнерами, базами данных и т.п. требуется подключение соответствующих библиотек. Так вот в C++ (и не только) есть аналогичные библиотеки с аналогичной функциональностью.

S> EF. Дай ссылочки посмотреть. А внутри Linq деревья выражений.
S>https://msdn.microsoft.com/ru-ru/library/bb397951.aspx
S>Я уже приводил ссылки на расширители.

https://github.com/rbock/sqlpp11 — один из вариантов. )

_>>В Xamarin весьма специфическая кроссплатформенность. К примеру GUI надо писать заново под каждую платформу.

S>Ну вроде как тут уже договорились, что для каждого GUI свой интерфейс либо HTML 5

Где это "тут" договорились? ) На Qt я создают один и тот же интерфейс (код) и он работает на всех платформах сразу. Причём на каждой из них выглядит родным.
Re[38]: Java vs C# vs C++
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 04.10.15 17:09
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Здравствуйте, Serginio1, Вы писали:


S>>>>Мало того, за кучей может следить GC в отдельном потоке.

EP>>>Точно — конкурентная гадость, которая скорей всего не lock-free.
S>>Специально не поленился и поисал для тебя
S>>http://www.oszone.net/18549/
S>>

S>> .NET 4.5 мы внесли некоторые изменения для более эффективного использования фрагментов памяти в LOH, особенно в плане того, как мы управляем списком свободной памяти. Изменения относятся к сбору мусора (garbage collection, GC) как на рабочей станции, так и сервере. Но обратите внимание на то, что это не отменяет лимит в 85 000 байтов на размер объекта в LOH.


EP>Я на эту тему даже тест проводил
Автор: Evgeny.Panasyuk
Дата: 17.10.13


Я давно тесты проводил http://rsdn.ru/forum/design/701354.1
Автор: Serginio1
Дата: 30.06.04

Сейчас говоря дефрагментирует и LOH

S>>

S>>Фоновый GC для сервера В .NET 4 мы включили фоновый GC для рабочих станций. С того времени мы все чаще наблюдаем использование куч с размерами в диапазоне от нескольких до десятков гигабайт. Даже такому оптимизированному параллельному сборщику, как у нас, могут потребоваться секунды на сбор столь больших куч, а значит, потоки приложения будут блокированы примерно на то же время. Введение фонового GC для сервера обеспечивает поддержку нашим серверным сборщиком параллельных процедур сбора. Это сводит к минимуму длительные блокирующие операции сбора мусора, почти не влияя на высокую пропускную способность приложения.

S>>Если вы используете серверный GC, вам не нужно ничего делать для того, чтобы задействовать преимущества этой новой функциональности; фоновый GC для сервера выполняется автоматически. Высокоуровневые характеристики фонового GC одинаковы как для клиента, так и для сервера:
S>>•в фоне может выполняться только полный GC (объектов поколения 2);
S>>•при фоновом GC сжатие не осуществляется;
S>>•активный (не в фоне) GC (объектов поколений 0 и 1) возможен в процессе фонового GC. Серверный GC выполняется выделенными серверными GC-потоками;
S>>•полностью блокирующий GC также осуществляется выделенными серверными GC-потоками.


EP>А зачем ты привёл это? Оно как-то опровергает мои тезисы?

Про блокировки
и солнце б утром не вставало, когда бы не было меня
Re[42]: Java vs C# vs C++
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 04.10.15 17:13
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Здравствуйте, Serginio1, Вы писали:


_>>>Да, сам Linq (а точнее IEnumerable) — это абстракция (кстати, на мой взгляд весьма сомнительная, но это уже дело вкуса). Только вот сама по себе эта абстракция ничего не может. Чтобы она могла работать с контейнерами, базами данных и т.п. требуется подключение соответствующих библиотек. Так вот в C++ (и не только) есть аналогичные библиотеки с аналогичной функциональностью.

S>> EF. Дай ссылочки посмотреть. А внутри Linq деревья выражений.
S>>https://msdn.microsoft.com/ru-ru/library/bb397951.aspx
S>>Я уже приводил ссылки на расширители.

_>https://github.com/rbock/sqlpp11 — один из вариантов. )


Спасибо посмотрю.
_>>>В Xamarin весьма специфическая кроссплатформенность. К примеру GUI надо писать заново под каждую платформу.
S>>Ну вроде как тут уже договорились, что для каждого GUI свой интерфейс либо HTML 5

_>Где это "тут" договорились? ) На Qt я создают один и тот же интерфейс (код) и он работает на всех платформах сразу. Причём на каждой из них выглядит родным.

Там нехило по твоему QT прошлись. Сказав, что это убожество по сравнению с родными инструментами.
Мало того, у меня совсем хреновые формы получаются. Пусть формы проектируют другие. Если, что мне и HTML хватит
и солнце б утром не вставало, когда бы не было меня
Re[42]: Java vs C# vs C++
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 04.10.15 17:16
Оценка:
Здравствуйте, alex_public, Вы писали:

S>> EF. Дай ссылочки посмотреть. А внутри Linq деревья выражений.

S>>https://msdn.microsoft.com/ru-ru/library/bb397951.aspx
S>>Я уже приводил ссылки на расширители.

_>https://github.com/rbock/sqlpp11 — один из вариантов. )


А соединения, Group By итд
Что то мало примеров
и солнце б утром не вставало, когда бы не было меня
Re[39]: Java vs C# vs C++
От: Evgeny.Panasyuk Россия  
Дата: 04.10.15 17:19
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>>> Я давно не интересовался. Меня GC давно не беспокоит. Только вызываю его при работе с ком.

EP>>Я тебя поздравляю, действительно есть задачи где от него нет проблем. Я в первом же сообщении этой ветки тебе сказал что сам частенько использую Python.
S> Ну и? Тогда о чем разговор?

Так я тебе этот вопрос практически в каждом сообщении задаю — к чему ты подводишь? Если к тому что на практике применимы разные языки, с разными технологиями (GC/etc), даже тормозные — так я об этом тебе в первом же ответе сказал.

EP>>Сравниваем. Вариант Boost.Range:

EP>>1. Лаконичнее, красивее.
EP>>2. Быстрее. Там под копотом кстати те самые итераторы.
EP>>3. Выдаёт bidirectional последовательность вместо forward/single pass.
S> Мне все равно.

Конечно тебе всё равно. Всё что не восхваляет твой блаб язык и всё что показывает что в других языках есть аналоги на запрошенные тобой фичи, причём местами более мощные — тебе не интересно.

S>А многие подумают, чего это чувак побитовые операции за операции с массивами применяет.


Только первый раз, с непривычки.
LINQ кстати говоря тоже структурно далёк от SQL — от SQL там только ключевые слова. А по сути это монадическая DO-нотация.

S>А насчет быстроты то все зависит от компилятора которые могут в теже итераторы и преобразовываться.


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

S>>>>> Генерация текста это далеко от того что называется Linq. В Linq вообще отсутствует понятие текста.

EP>>>>В результате генерируется текст запроса, так понятнее
S> В результате генерируется машинный код на сервере. Есть абстракции. Контекс можно подменить и тогда итогом будет совсем другое.

Так в описываемой мной схеме тоже можно заменить контекст, и тоже итог может быть совсем другими

S>>> В итоге мне наплевать, вто что трансформирутся Linq запрос.

EP>>Да тут в принципе тоже, я про текст запрос сказал, для того чтобы подчеркнуть что трансформация происходит на этапе компиляции.
S> Так я от тебя ссылки и не дождался.

Я приводил — sqlpp11, первая ссылка в Google, или например на YouTube. Там очень близко к тому что я описал, в том числе есть возможность работать по контейнерам, правда это особо не зачем.
Re[39]: Java vs C# vs C++
От: Evgeny.Panasyuk Россия  
Дата: 04.10.15 17:31
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>>>

S>>> .NET 4.5 мы внесли некоторые изменения для более эффективного использования фрагментов памяти в LOH, особенно в плане того, как мы управляем списком свободной памяти. Изменения относятся к сбору мусора (garbage collection, GC) как на рабочей станции, так и сервере. Но обратите внимание на то, что это не отменяет лимит в 85 000 байтов на размер объекта в LOH.

EP>>Я на эту тему даже тест проводил
Автор: Evgeny.Panasyuk
Дата: 17.10.13

S>Я давно тесты проводил http://rsdn.ru/forum/design/701354.1
Автор: Serginio1
Дата: 30.06.04


Кстати, может ты знаешь, есть ли какая-нибудь нормальная/популярная реализация аналога std::deque для C#/.NET? В той теме так ничего и не привели.
Это по сути random-access последовательность состоящая из chunk'ов фиксированного размера — это позволило бы обходить проблемы с фрагментацией даже на старой LOH стратегии.

S>Сейчас говоря дефрагментирует и LOH


Видимо не по-умолчанию, это к вопросу о настройках

https://msdn.microsoft.com/en-us/library/system.runtime.gcsettings.largeobjectheapcompactionmode%28v=vs.110%29.aspx
The default value of the LargeObjectHeapCompactionMode property is GCLargeObjectHeapCompactionMode.Default, which indicates that the LOH is not compacted during garbage collections.
If you assign the property a value of GCLargeObjectHeapCompactionMode.CompactOnce, the LOH is compacted during the next full blocking garbage collection, and the property value is reset to GCLargeObjectHeapCompactionMode.Default.

И походу нужно каждый раз взводить.

EP>>А зачем ты привёл это? Оно как-то опровергает мои тезисы?

S> Про блокировки

Что именно? Вот это? "Точно — конкурентная гадость, которая скорей всего не lock-free."
Там сказано что она lock/wait-free?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.