Здравствуйте, kuj, Вы писали:
H>>>>>Ну если там кроме работы со строкой ничего небыло... Память смотрел Process Explorer'ом, у него цифры актуальные.
___>>>>Т.е. он сказал: память на эту строку 75 мб.
H>>>Нет, а шо? Но ты же наверняка знаешь, что в StringBuilder'е преаллокация используется. Так что, не вижу ничего удивительного...
___>>Т.е. ты указал Capacity = 75 * 1024 * 1024; ___>>Ну тогда конечно
kuj>/ 2 там utf16
Да-да точно — Capacity это число символов.
Re[44]: Коробочные продукты на .NET (НЕ для программистов/ад
Здравствуйте, _d_m_, Вы писали:
___>>>Т.е. он сказал: память на эту строку 75 мб.
H>>Нет, а шо? Но ты же наверняка знаешь, что в StringBuilder'е преаллокация используется. Так что, не вижу ничего удивительного...
___>Т.е. ты указал Capacity = 75 * 1024 * 1024; ___>Ну тогда конечно
Capacity я, разумеется, не устанавливал.
Re[42]: Коробочные продукты на .NET (НЕ для программистов/ад
Здравствуйте, _d_m_, Вы писали:
H>>Ну если там кроме работы со строкой ничего небыло... Память смотрел Process Explorer'ом, у него цифры актуальные.
___>http://www.rsdn.ru/forum/dotnet/1883851.1.aspx
Здравствуйте, hattab, Вы писали:
H>Здравствуйте, _d_m_, Вы писали:
H>>>У StringBuilder'а двукратный оверхед по памяти, какой же там массив чаров?
___>> ___>>В смысле: там одна и таже строка продублирована? Как такое тебе в голову могло прийти...
H>В тесте создавалась строка размером в 30Mb, а процесс кушал 75
Код покажи.
Re[43]: Коробочные продукты на .NET (НЕ для программистов/ад
Здравствуйте, hattab, Вы писали:
H>>>Ну если там кроме работы со строкой ничего небыло... Память смотрел Process Explorer'ом, у него цифры актуальные.
___>>http://www.rsdn.ru/forum/dotnet/1883851.1.aspx
H>>Если бы ты внимательно читал, то увидел бы, что речь идет вовсе не о Working Set
kuj>Я тебе открою страшную тайну: речь таки о working set, а ты откровенно ламерствуешь. ;]
Здравствуйте, Jack128, Вы писали:
J>Собственно такие существуют?? Желательно более менее распространенные, хотя бы от 50к пользователей.
Какие-то из приложений, входящие в Windows Live Essentials требуют .НЕТ
Если учесть, что оно приезжает по Windows Update, то 50 килоюзеров должно набраться довольно быстро.
What a piece of work is a man! how noble in reason! how infinite in faculty! in form and moving how express and admirable! in action how like an angel! in apprehension how like a god! the beauty of the world! the paragon of animals!
Re[40]: Коробочные продукты на .NET (НЕ для программистов/ад
Здравствуйте, kuj, Вы писали:
kuj>Нет, Process Explorer показал тебе размер workset`а. Заканчивай ламерствовать, хаттабчик. ;]
Сам заканчивай ламерить!
Тыб хоть раз посмотрел что для .NET процесса можно увидеть в ProceXP.
Особенно на закладке .NET для .NET CLR Memory.
Там вообще много интересных параметров.
Например реалтайм счетчик Total Runtime Checks и разделы .NET CLR Interop, .NET CLR Jit
Кроме того есть еще мегатул VMView, который тебе покажет раскладку по адресному пространству.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[45]: Коробочные продукты на .NET (НЕ для программистов/ад
Здравствуйте, CreatorCray, Вы писали:
CC>Здравствуйте, kuj, Вы писали:
kuj>>Нет, Process Explorer показал тебе размер workset`а. Заканчивай ламерствовать, хаттабчик. ;] CC>Сам заканчивай ламерить! CC>Тыб хоть раз посмотрел что для .NET процесса можно увидеть в ProceXP. CC>Особенно на закладке .NET для .NET CLR Memory.
CC>Там вообще много интересных параметров. CC>Например реалтайм счетчик Total Runtime Checks и разделы .NET CLR Interop, .NET CLR Jit
CC>Кроме того есть еще мегатул VMView, который тебе покажет раскладку по адресному пространству.
Я в курсе, но то, что видит хаттабчек есть working set. CC слив засчитан. ;]
Re[46]: Коробочные продукты на .NET (НЕ для программистов/ад
Здравствуйте, kuj, Вы писали:
kuj>>>Нет, Process Explorer показал тебе размер workset`а. Заканчивай ламерствовать, хаттабчик. ;] CC>>Сам заканчивай ламерить! CC>>Тыб хоть раз посмотрел что для .NET процесса можно увидеть в ProceXP. CC>>Особенно на закладке .NET для .NET CLR Memory.
CC>>Там вообще много интересных параметров. CC>>Например реалтайм счетчик Total Runtime Checks и разделы .NET CLR Interop, .NET CLR Jit
CC>>Кроме того есть еще мегатул VMView, который тебе покажет раскладку по адресному пространству.
kuj>Я в курсе, но то, что видит хаттабчек есть working set. CC слив засчитан. ;]
Re: Коробочные продукты на .NET (НЕ для программистов/админо
Здравствуйте, kuj, Вы писали:
kuj>Я в курсе, но то, что видит хаттабчек есть working set. CC слив засчитан. ;]
Он для альтернативно одаренных любителей слива специально вот тут пишет, какую память он смотрел: Re[42]: Коробочные продукты на .NET (НЕ для программистов/ад
Здравствуйте, hattab, Вы писали:
H>Здравствуйте, yuriylsh, Вы писали:
Y>>>>А можно глянуть на тест и узнать, как измерялся размер затраченной памяти?
H>>>Ты же видел синтетику с конкатенацией в цикле. Память по ProcessExplorer'у.
Y>>Там много какую память можно посмотреть. На какую ты смотрел?
H>Private Bytes
Peak private bytes: 48660 K (пустое приложение — 17984К)
где двойной оверхед...
Luck in life always exists in the form of an abstract class that cannot be instantiated directly and needs to be inherited by hard work and dedication.
Re[44]: Коробочные продукты на .NET (НЕ для программистов/ад
Y>Peak private bytes: 48660 K (пустое приложение — 17984К)
Y> где двойной оверхед...
Ну ты молодец, установил максимальную Capacity и мне еще такие вопросы задаешь Коли уж решил проверить, так и проверяй на синтетике которая была дана, а не изобретай свой вариант с ограничительными условиями.
Re[45]: Коробочные продукты на .NET (НЕ для программистов/ад
Y>>Peak private bytes: 48660 K (пустое приложение — 17984К)
Y>> где двойной оверхед...
H>Ну ты молодец, установил максимальную Capacity и мне еще такие вопросы задаешь Коли уж решил проверить, так и проверяй на синтетике которая была дана, а не изобретай свой вариант с ограничительными условиями.
Условия были: размер 30 Мб и 2-й оверхед по памяти . Я тебе показал, что ты не прав (кстати, ты же проводил сравнение, да? покажи как ты задал массив чаров, с которым сравниваешь, без задания его максимального размера). Двойной оверхед по памяти не у StringBuilder'а, а у тебя .
Кстати, какой оверхед, как ты думаешь, будет в этом коде (для MS .Net Framework 3.5 или ниже):
StringBuilder sb = new StringBuilder();
sb.Append('a'); // какой здесь оверхед?
sb.Append('a', 15); // а вот здесь?
sb.Append('a'); // а как насчет здесь?
Luck in life always exists in the form of an abstract class that cannot be instantiated directly and needs to be inherited by hard work and dedication.
Re[46]: Коробочные продукты на .NET (НЕ для программистов/ад
Y>>>Peak private bytes: 48660 K (пустое приложение — 17984К)
Y>>> где двойной оверхед...
H>>Ну ты молодец, установил максимальную Capacity и мне еще такие вопросы задаешь Коли уж решил проверить, так и проверяй на синтетике которая была дана, а не изобретай свой вариант с ограничительными условиями.
Y>Условия были: размер 30 Мб и 2-й оверхед по памяти. Я тебе показал, что ты не прав (кстати, ты же проводил сравнение, да? покажи как ты задал массив чаров, с которым сравниваешь, без задания его максимального размера). Двойной оверхед по памяти не у StringBuilder'а, а у тебя.
я поясняю причину своего недоумения. Стоило почитать, прежде чем начинать мне что-то доказывать
Y>Кстати, какой оверхед, как ты думаешь, будет в этом коде (для MS .Net Framework 3.5 или ниже): Y>
Y>StringBuilder sb = new StringBuilder();
Y>sb.Append('a'); // какой здесь оверхед?
Y>sb.Append('a', 15); // а вот здесь?
Y>sb.Append('a'); // а как насчет здесь?
Y>
хз. Я тебе другой покажу. Дана обсуждаемая синтетика от criosray (ReadLine'ы вставил я, это будут контрольные точки):
using System;
using System.Diagnostics;
using System.Text;
class _
{
static void Main(string[] args)
{
var stopwatch = new Stopwatch();
stopwatch.Start();
var stringBuilder = new StringBuilder();
for (int i = 0; i < 10000000; i++)
{
stringBuilder.Append("c1");
}
stopwatch.Stop();
Console.WriteLine("append: elapsed {0}", stopwatch.Elapsed);
Console.WriteLine(stringBuilder.Length);
Console.ReadLine(); // первая контрольная точка
stopwatch.Start();
stringBuilder.Replace("c1", "abc4");
stopwatch.Stop();
Console.WriteLine("replace: elapsed {0}", stopwatch.Elapsed);
Console.WriteLine(stringBuilder.Length);
Console.ReadLine(); // вторая контрольная точка
}
}
Первая контрольная точка: размер строки — 38.14Mb, Private Bytes — 111.1Mb
Вторая контрольная точка: размер строки — 76.29Mb, Private Bytes — 145.3Mb
(в процессе работы метода Replace, Private Bytes держались на уровне 252.1Mb)
Re[47]: Коробочные продукты на .NET (НЕ для программистов/ад
я поясняю причину своего недоумения. Стоило почитать, прежде чем начинать мне что-то доказывать
Я читал. Я тебе доказываю, что двойной оверхед по памяти — это бред. Смотри ниже.
Y>>Кстати, какой оверхед, как ты думаешь, будет в этом коде (для MS .Net Framework 3.5 или ниже): Y>>
Y>>StringBuilder sb = new StringBuilder();
Y>>sb.Append('a'); // вот здесь оверхед в 16 раз
Y>>sb.Append('a', 15); // а здесь нет оверхеда
Y>>sb.Append('a'); // вот здесь почти 2 раза
Y>>
H>хз.
Вот именно. И твое утвержедение про 2-й оверхед — это тоже хз что (смотри коменты в коде).
H>Я тебе другой покажу. Дана обсуждаемая синтетика от criosray (ReadLine'ы вставил я, это будут контрольные точки)
И? Что тест мерял? А ты что меряешь?
Luck in life always exists in the form of an abstract class that cannot be instantiated directly and needs to be inherited by hard work and dedication.
Re[48]: Коробочные продукты на .NET (НЕ для программистов/ад
я поясняю причину своего недоумения. Стоило почитать, прежде чем начинать мне что-то доказывать
Y>Я читал. Я тебе доказываю, что двойной оверхед по памяти — это бред. Смотри ниже.
Сомневаюсь, что ты читал, иначе не стал бы мне рассказывать про отсутствующий 2x-оверхед, ибо я написал, что после ildasm'а, магии не обнаружил, а значит таки да -- массив чаров.
Y>>>Кстати, какой оверхед, как ты думаешь, будет в этом коде (для MS .Net Framework 3.5 или ниже): Y>>>
Y>>>StringBuilder sb = new StringBuilder();
Y>>>sb.Append('a'); // вот здесь оверхед в 16 раз
Y>>>sb.Append('a', 15); // а здесь нет оверхеда
Y>>>sb.Append('a'); // вот здесь почти 2 раза
Y>>>
H>>хз.
Y>Вот именно. И твое утвержедение про 2-й оверхед — это тоже хз что (смотри коменты в коде).
А чего ты ждал, что я полезу в MSDN читать, каким умолчательным размером устанавливается внутренний буфер? У меня же лучше пример был
H>>Я тебе другой покажу. Дана обсуждаемая синтетика от criosray (ReadLine'ы вставил я, это будут контрольные точки)
Y>И? Что тест мерял? А ты что меряешь?
Во-первых, я ничего не меряю. Речь об оверхеде это просто констатация фактов (более того, выраженная в форме вопроса!). Во-вторых, ярым защитникам .NET, стоит внимательнее читать и пытаться вникать в суть моих постингов, даже если они наносят нестерпимую боль их ранимым душам.
Re[49]: Коробочные продукты на .NET (НЕ для программистов/ад
я поясняю причину своего недоумения. Стоило почитать, прежде чем начинать мне что-то доказывать
Y>>Я читал. Я тебе доказываю, что двойной оверхед по памяти — это бред. Смотри ниже.
H>Сомневаюсь, что ты читал, иначе не стал бы мне рассказывать про отсутствующий 2x-оверхед, ибо я написал, что после ildasm'а, магии не обнаружил, а значит таки да -- массив чаров.
Тут ты прав, извиняюсь, не заметил, что ты вроде понял, в чем дело. Что, впрочем, тебе не помешало привести аналогичный "аргумент" в предидущем посте
Y>>Вот именно. И твое утвержедение про 2-й оверхед — это тоже хз что (смотри коменты в коде).
H>А чего ты ждал, что я полезу в MSDN читать, каким умолчательным размером устанавливается внутренний буфер? У меня же лучше пример был
Правильно! Учение — свет, а темнота — друг молодежи
H>>>Я тебе другой покажу. Дана обсуждаемая синтетика от criosray (ReadLine'ы вставил я, это будут контрольные точки)
Y>>И? Что тест мерял? А ты что меряешь?
H>Во-первых, я ничего не меряю. Речь об оверхеде это просто констатация фактов (более того, выраженная в форме вопроса!). Во-вторых, ярым защитникам .NET, стоит внимательнее читать и пытаться вникать в суть моих постингов, даже если они наносят нестерпимую боль их ранимым душам.
А минус вот за это.
Luck in life always exists in the form of an abstract class that cannot be instantiated directly and needs to be inherited by hard work and dedication.