В функции GetBytes метод ToCharArray()
1) "Copies the characters in this instance to..."
2) "Copies a specified number of bytes from..."
т.е. копируем дважды, когда можно было бы вообще не копировать.
И так повсюду: везде и всюду такты и байты расходуются ниначто, т.е. выделяется память там, где её выделять не нужно, и делается то, что делать не нужно.
ненавижу все существующие ЯП
Re: ответ на вопрос: Почему новые программы работают меделнно
Здравствуйте, newCL, Вы писали:
CL>http://stackoverflow.com/questions/472906/net-string-to-byte-array-c-sharp
CL>т.е. копируем дважды, когда можно было бы вообще не копировать.
CL>И так повсюду: везде и всюду такты и байты расходуются ниначто, т.е. выделяется память там, где её выделять не нужно, и делается то, что делать не нужно.
Ничего, что ровно на одно сообщение ниже есть
Internally, the .NET framework uses UTF16 to represent strings, so if you simply want to get the exact bytes that .NET uses, use System.Text.Encoding.Unicode.GetBytes (...).
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Нельзя не копировать. Строки в .NET — immutable. А массивы — mutable. Некопирование в такой ситуации означает потерю safety.
Это всё равно глупо, т.к. в большинстве случаев байты получают для скармливания алгоритмам хэширования/криптования или отправляются по сети, или в файл пишутся. Т.е. байты не меняются в процессе, а safety обязан обеспечивать сам программист.
ненавижу все существующие ЯП
Re[3]: ответ на вопрос: Почему новые программы работают меделнно
Здравствуйте, newCL, Вы писали:
CL>Это всё равно глупо, т.к. в большинстве случаев байты получают для скармливания алгоритмам хэширования/криптования или отправляются по сети, или в файл пишутся
Переключаешься в unsafe и вперед, если уверен что получишь существенный выигрышь в перформансе.
CL>а safety обязан обеспечивать сам программист.
Вот unsafe как раз и предназначен для случаев, когда программист берет ответственность за корректность программы на себя.
Re[3]: ответ на вопрос: Почему новые программы работают меделнно
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Здравствуйте, Mamut, Вы писали:
M>>А от идиотов никакая память не спасет.
PD>От идиотов спасает только ее нехватка.
Здравствуйте, Mamut, Вы писали:
M>>>А от идиотов никакая память не спасет.
PD>>От идиотов спасает только ее нехватка.
M>Нет, от идиотов ничего не спасает. Будет нехватка памяти, будет все к чертям валиться в OOM.
Полностью согласен. Регулярно пользуюсь двумя браузерами: Chrome и Firefox. Оба при нехватке памяти молча закрываются. То есть OOM в них не обрабатывается. Где-то в одном случае из десяти лисичка предлагает послать крэш-репорт (что там делает хром — не в курсе). Хорошо хоть оба браузера не теряют открытые вкладки, после запуска корректно всё восстанавливают.
Re[5]: ответ на вопрос: Почему новые программы работают меделнно
Здравствуйте, koodeer, Вы писали:
K>Полностью согласен. Регулярно пользуюсь двумя браузерами: Chrome и Firefox. Оба при нехватке памяти молча закрываются.
Линуксоид?
Re[6]: ответ на вопрос: Почему новые программы работают меделнно
Здравствуйте, sdf, Вы писали:
sdf>Здравствуйте, koodeer, Вы писали:
K>>Полностью согласен. Регулярно пользуюсь двумя браузерами: Chrome и Firefox. Оба при нехватке памяти молча закрываются. sdf>Линуксоид?
Windows. Зависит от того какой chrome.exe навернулся. Если это основной процесс, то браузер просто закроется, если это рабочие процессы — то просто отвалится ряд вкладок.
/* иЗвиНите зА неРовнЫй поЧерК */
Re[7]: ответ на вопрос: Почему новые программы работают меделнно
Здравствуйте, hardcase, Вы писали:
H>Здравствуйте, sdf, Вы писали:
sdf>>Здравствуйте, koodeer, Вы писали:
K>>>Полностью согласен. Регулярно пользуюсь двумя браузерами: Chrome и Firefox. Оба при нехватке памяти молча закрываются. sdf>>Линуксоид? H>Windows.
Телепат?
Re[4]: ответ на вопрос: Почему новые программы работают меделнно
M>>Нет, от идиотов ничего не спасает. Будет нехватка памяти, будет все к чертям валиться в OOM.
PD>И это очень хорошо, потому что этих программ не увидит никто, кроме этих идиотов.
Нет, неверно. Синий экран смерти помнишь? Видать, писали такие вот идиоты. Что-то нехватка памяти не привела к тому, что BSOD'а не было, а продукт никто не видел.
В общем, не надо рассказывать сказки про то, как ограниченные ресурсы моментально делают из программистов безгрешных гениев — тошнит уже
Здравствуйте, koodeer, Вы писали:
M>>>>А от идиотов никакая память не спасет. PD>>>От идиотов спасает только ее нехватка. M>>Нет, от идиотов ничего не спасает. Будет нехватка памяти, будет все к чертям валиться в OOM. K>Полностью согласен. Регулярно пользуюсь двумя браузерами: Chrome и Firefox. Оба при нехватке памяти молча закрываются. То есть OOM в них не обрабатывается. Где-то в одном случае из десяти лисичка предлагает послать крэш-репорт (что там делает хром — не в курсе). Хорошо хоть оба браузера не теряют открытые вкладки, после запуска корректно всё восстанавливают.
Лечить идиотов надо начинать с ядра ОС (и все Unix, и Linux, и Windows тут кривы почти одинаково). Ситуация нехватки критических ресурсов, когда невозможно сделать даже аккуратное завершение приложения, должна лечиться при помощи ядра, и не надеяться на виртуальные ресурсы.
The God is real, unless declared integer.
Re[6]: ответ на вопрос: Почему новые программы работают меделнно
Здравствуйте, Mamut, Вы писали:
M>Нет, неверно. Синий экран смерти помнишь? Видать, писали такие вот идиоты. Что-то нехватка памяти не привела к тому, что BSOD'а не было, а продукт никто не видел.
Я думаю, что все же там было что-то иное. Простой нехваткой памяти в 3 кольце BSOD не сотворишь. Или там была ошибка в ядре. Но от ошибок никто не застрахован.
M>В общем, не надо рассказывать сказки про то, как ограниченные ресурсы моментально делают из программистов безгрешных гениев — тошнит уже
А этого я и не утверждал. Просто тех, кто писать не умеет, нехватка памяти приводит в ступор и они переквалифицируются в управдомы
With best regards
Pavel Dvorkin
Re: ответ на вопрос: Почему новые программы работают меделнно
CL>т.е. копируем дважды, когда можно было бы вообще не копировать.
CL>И так повсюду: везде и всюду такты и байты расходуются ниначто, т.е. выделяется память там, где её выделять не нужно, и делается то, что делать не нужно.
Это позволяет сделать иммутабельные строки, что само по себе очень хорошо. И, кстати, теряя в переводе массив байт <-> строка, мы получаем очень дешевую и безопасную операцию substring, по сравнению с традиционными c-строками.
На самом деле, если внимательно смотреть на профайлер среднего приложения, то потери производительности именно на этом моменте обычно и в микроскоп не видно(а если видно, то всегда можно соптимизировать). Выделение памяти и сборка молодого поколения мусора, как и блочное копирование — операции не такие уж тяжелые.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[7]: ответ на вопрос: Почему новые программы работают меделнно
M>>Нет, неверно. Синий экран смерти помнишь? Видать, писали такие вот идиоты. Что-то нехватка памяти не привела к тому, что BSOD'а не было, а продукт никто не видел.
PD>Я думаю, что все же там было что-то иное. Простой нехваткой памяти в 3 кольце BSOD не сотворишь. Или там была ошибка в ядре. Но от ошибок никто не застрахован.
Без разницы. А выделенное — ключевое.
M>>В общем, не надо рассказывать сказки про то, как ограниченные ресурсы моментально делают из программистов безгрешных гениев — тошнит уже
PD>А этого я и не утверждал. Просто тех, кто писать не умеет, нехватка памяти приводит в ступор и они переквалифицируются в управдомы
Здравствуйте, Mamut, Вы писали:
PD>>Я думаю, что все же там было что-то иное. Простой нехваткой памяти в 3 кольце BSOD не сотворишь. Или там была ошибка в ядре. Но от ошибок никто не застрахован.
M>Без разницы. А выделенное — ключевое.
Ну уж нет. Ядро Windows писали грамотные специалисты. Ну допустили ошибку, и что ? Ты их никогда не допускал ? Не надо из того факта, что был BSOD где-то когда-то, делать далеко идущие выводы.
M>>>В общем, не надо рассказывать сказки про то, как ограниченные ресурсы моментально делают из программистов безгрешных гениев — тошнит уже
PD>>А этого я и не утверждал. Просто тех, кто писать не умеет, нехватка памяти приводит в ступор и они переквалифицируются в управдомы
M>Не надо рассказывать эти басни.
Оставь себе и сказки, и басни. В качестве аргумента они не годятся.
А по существу — дай сейчас написать кому-нибудь компилятор с того же Паскаля да чтобы работал на 1 Мбайте памяти, и результат очевиден : напишут те, кто умеет работать, а все остальные просто ничего не сделают.