Re[9]: Конец нересурсов
От: Klatu  
Дата: 15.11.11 14:07
Оценка: -1
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Поскольку я не знаю, что означает термин "профессионализм"


Почему-то я даже не удивлен
Re[7]: Конец нересурсов
От: Klatu  
Дата: 15.11.11 14:09
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

IT>>>>Дык в Техасе хорошие пастухи, а не программисты. Вот если бы они написали как настоящий стейк готовить, тогда да.

ГВ>>>С другой стороны, уж кто-кто, а пастухи-то понимают в ресурсах.
IT>>И ещё в навозе.

ГВ>Это не порок.


Да уж.. порой мне кажется, что для программиста это — насущная необходимость
Re[5]: Конец нересурсов
От: Sinclair Россия https://github.com/evilguest/
Дата: 15.11.11 17:13
Оценка: +2
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Да нет, что ты. Переполнение буфера и утечки памяти — это как два мифических зверька, которые обязательно живут в любой C++-программе. Фольклор — штука такая, что её забыть невозможно. Короче говоря, и лечится, и ловится это всё на раз, если менеджмент не дурит с тестированием (а оно необходимо для любой программы).

Осталось понять, что ж ни Adobe, ни MS, ни Apple не выловили и не вылечили это всё на раз. А продолжают мне дважды в месяц присылать очередные апдейты, где "fixed the vulnerability allowing a remote attacker to gain a control over compromised system".
Наверное, менеджмент во всех трёх сговорился и систематически дурит с тестированием.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[3]: Конец нересурсов
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 15.11.11 17:36
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Проблема в том, что получив MSIL или байт-код Java зачастую уже нельзя провести тех же оптимизаций, которые возможны, если иметь доступ ко всему массиву исходных текстов.


Когда то я это уже слышал. Лет 8 назад. Сюрприз — из IL кода с почти 100% точностью можно восстановить исходник.

ГВ> Ну и плюс к тому — разнообразные runtime-вычисления тоже вносят некоторую лепту. GC — ну, с этим понятно: постоянно работающий анализ состояния вычислительной системы на производительность может повлиять ровно одним способом (если что, то я понимаю, что здесь дело в нюансах и подчас GC может оказаться эффективнее new/delete, но именно, что подчас).


Как человек, который перформансом дотнет приложений регулярно занимается, смею тебя заверить — на практике проблемы далеко не в оптимизациях компайлера или GC.
... << RSDN@Home 1.2.0 alpha 5 rev. 1537 on Windows 7 6.1.7601.65536>>
AVK Blog
Re[4]: Конец нересурсов
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 15.11.11 19:12
Оценка:
Здравствуйте, AndrewVK, Вы писали:

ГВ>>Проблема в том, что получив MSIL или байт-код Java зачастую уже нельзя провести тех же оптимизаций, которые возможны, если иметь доступ ко всему массиву исходных текстов.


AVK>Когда то я это уже слышал. Лет 8 назад.


Я думаю, где-то уж лет 10 должен слышать.

AVK>Сюрприз — из IL кода с почти 100% точностью можно восстановить исходник.


Ах, ну да. Рефлектор же... Ай-яй-яй мне.

ГВ>> Ну и плюс к тому — разнообразные runtime-вычисления тоже вносят некоторую лепту. GC — ну, с этим понятно: постоянно работающий анализ состояния вычислительной системы на производительность может повлиять ровно одним способом (если что, то я понимаю, что здесь дело в нюансах и подчас GC может оказаться эффективнее new/delete, но именно, что подчас).


AVK>Как человек, который перформансом дотнет приложений регулярно занимается, смею тебя заверить — на практике проблемы далеко не в оптимизациях компайлера или GC.


А в чём? Интересно было бы узнать твоё мнение.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[5]: Конец нересурсов
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 15.11.11 19:17
Оценка: 24 (1)
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>А в чём? Интересно было бы узнать твоё мнение.


Как обычно — кривые алгоритмы, кривой дизайн, плохое сопряжение независимых кусков кода и косяки в стандартных библиотеках.
... << RSDN@Home 1.2.0 alpha 5 rev. 1537 on Windows 7 6.1.7601.65536>>
AVK Blog
Re[6]: Конец нересурсов
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 15.11.11 19:35
Оценка:
Здравствуйте, Sinclair, Вы писали:

ГВ>>Да нет, что ты. Переполнение буфера и утечки памяти — это как два мифических зверька, которые обязательно живут в любой C++-программе. Фольклор — штука такая, что её забыть невозможно. Короче говоря, и лечится, и ловится это всё на раз, если менеджмент не дурит с тестированием (а оно необходимо для любой программы).

S>Осталось понять, что ж ни Adobe, ни MS, ни Apple не выловили и не вылечили это всё на раз. А продолжают мне дважды в месяц присылать очередные апдейты, где "fixed the vulnerability allowing a remote attacker to gain a control over compromised system".

Не знаю. Правда, всего лишь "дважды в месяц" при здоровенной базе исходников — это, считай, ничто. ИМХО, разумеется. И трудно предположить, что эти считанные дыры могут заставить переписать всё на новом языке.

S>Наверное, менеджмент во всех трёх сговорился и систематически дурит с тестированием.


Не знаю. Не имея реального представления о процессе внутри самих Adobe, MS или Apple предполагать что-то очень трудно. Могу только монетку подкинуть, так вернее получится.

Влияющих факторов может быть очень много: использование стороннего кода, какие-нибудь флуктуации в "давлении сроков" или, скажем, "внезапное" изменение таймингов аппаратуры. Да до хрена всего.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[7]: Конец нересурсов
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 15.11.11 19:46
Оценка:
ГВ>Не знаю. Правда, всего лишь "дважды в месяц" при здоровенной базе исходников — это, считай, ничто.

Я здесь подменил количество ошибок количеством бюллетеней — это неправильно. Но тем не менее, у той же MS, к примеру, дырок не много (в штуках не скажу).
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[3]: Конец нересурсов
От: vdimas Россия  
Дата: 16.11.11 00:38
Оценка: 12 (1)
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Проблема в том, что получив MSIL или байт-код Java зачастую уже нельзя провести тех же оптимизаций, которые возможны, если иметь доступ ко всему массиву исходных текстов.


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

ГВ>Ну и плюс к тому — разнообразные runtime-вычисления тоже вносят некоторую лепту. GC — ну, с этим понятно: постоянно работающий анализ состояния вычислительной системы на производительность может повлиять ровно одним способом (если что, то я понимаю, что здесь дело в нюансах и подчас GC может оказаться эффективнее new/delete, но именно, что подчас).


GC это да, ограничение для многих оптимизаций, т.к. стек должен быть детерминированно размечен для целей GC, хотя бы "иногда". ИМХО, это и есть камень предкновения для оптимизаций GC. Сдается мне, что еще не готов теоретический аппарат, насчет того, где оптимально расставлять ловушки для GC и обеспечивать детерминированность стека, а где можно все соптимизировать нафик в безымянных SSE регистрах даже для целочисленных операций, как это делает компилятор C++.
Re[6]: Конец нересурсов
От: vdimas Россия  
Дата: 16.11.11 01:09
Оценка: 1 (1)
Здравствуйте, AndrewVK, Вы писали:

ГВ>>А в чём? Интересно было бы узнать твоё мнение.

AVK>Как обычно — кривые алгоритмы, кривой дизайн, плохое сопряжение независимых кусков кода и косяки в стандартных библиотеках.

Дык, такие вещи ни от платформы, ни от языков не зависят.

ИМХО, гораздо важнее то, что дотнет формировал некую "культуру" программирования, где любые решения по-месту эффективности ради считаются чуть ли не хакерством. Как в том большом обсуждении задачки для собеседования про "бесконечную" очередь. В дотнете не так уж много приемов, характерных именно для дотнета, позволяющих добиться лучшей эффективности, когда она нужна (много других приемов более универсальны и работают для нейтива тоже), но это порой требует лишнего ручного приседания в алгоритмах. И аргумент "надо, значит надо" для многих банально не подходит, т.к. большинство дотнет разработчиков не связаны с задачами, критичными к перформансу. Для них плохой перформанс — это, например, многократно открывать один и тот же файл, для последовательного чтения строк. Или организация доступа по порядковому номеру в связанных списках (встречал и такое).... Только дотнет тут не при чем, повторюсь. Это лень и безалаберность.
Re[10]: Конец нересурсов
От: vdimas Россия  
Дата: 16.11.11 01:16
Оценка: +2 -1
Здравствуйте, Klatu, Вы писали:

K>А про плавающие и косвенные ошибки ты решил скромно умолчать, или просто не в курсе что это такое?


Это от технологии не зависит.
Re[8]: Конец нересурсов
От: vdimas Россия  
Дата: 16.11.11 01:18
Оценка: +1 -1
Здравствуйте, Klatu, Вы писали:

ГВ>>Это не порок.


K>Да уж.. порой мне кажется, что для программиста это — насущная необходимость


Ну кому-то же надо и драйвера разрабатывать, и кодеки... Не всем же т.н. "программистам" сайты рисовать...
Re[3]: Конец нересурсов
От: vdimas Россия  
Дата: 16.11.11 01:50
Оценка: 43 (7)
Здравствуйте, Геннадий Васильев, Вы писали:

В догонку, для дотнета существует еще одно ограничение, которое я даже не представляю, как обойти. Например, после оптимизации link-time codogeneration в С++ полученная программа в некоторых местах будет очень не похожа на исходную, целые типы и даже иерархии с виртуальными вызовами растворяются в небытие и структуры данных корежатся до неузнаваемости после этого акта зачаточной суперкомпиляции. А в дотнете встанет проблема привязать имеющуюся метаинформацию к такой "другой" оптимизированной программе, что может создать сложности для доступа к объектам через рефлексию. Учитывая, что традиционно в дотнете чуть больше чем все — библиотеки, не поможет даже суперкомпиляция, ибо в процессе работы можно загрузить другую библиотеку, которой приспичит обратиться к уже имеющейся загруженной и ранее соптимизированной суперкомпилятором библиотеке через рефлексию, и будет противоречие.

Т.е. сама необходимость обеспечивать рантайм рефлексию накладывает серьезные ограничения на трансформацию кода и данных в процессе компиляции. Не зря когда-то в рамках Singularity пришли к тому, что в их специализированном компиляторе поддерживается только compile-time рефлексия.
Re[7]: Конец нересурсов
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 16.11.11 02:08
Оценка:
Здравствуйте, vdimas, Вы писали:

ГВ>>>А в чём? Интересно было бы узнать твоё мнение.

AVK>>Как обычно — кривые алгоритмы, кривой дизайн, плохое сопряжение независимых кусков кода и косяки в стандартных библиотеках.
V>Дык, такие вещи ни от платформы, ни от языков не зависят.

V>ИМХО, гораздо важнее то, что дотнет формировал некую "культуру" программирования, где любые решения по-месту эффективности ради считаются чуть ли не хакерством. Как в том большом обсуждении задачки для собеседования про "бесконечную" очередь. В дотнете не так уж много приемов, характерных именно для дотнета, позволяющих добиться лучшей эффективности, когда она нужна (много других приемов более универсальны и работают для нейтива тоже), но это порой требует лишнего ручного приседания в алгоритмах. И аргумент "надо, значит надо" для многих банально не подходит, т.к. большинство дотнет разработчиков не связаны с задачами, критичными к перформансу. Для них плохой перформанс — это, например, многократно открывать один и тот же файл, для последовательного чтения строк. Или организация доступа по порядковому номеру в связанных списках (встречал и такое).... Только дотнет тут не при чем, повторюсь. Это лень и безалаберность.


Я бы не стал, наверное, связывать такую культуру именно с дотнетом, поскольку вокруг "формочек к СУБД" наблюдал такие рассуждения довольно давно. Да, точно. Первый раз я это услышал от спеца, принёсшего весть не то с конференции MS, не то с какой-то UG в 1997-м: что, мол, "сейчас главное — разрабатывать программы быстро, а то, что форма рисуется не за 200 микросекунд, а за 200 миллисекунд — так кому какая разница!" и тут же: "MS считает, что сейчас цикл разработки программы — 2 месяца" (последняя цифра мне особенно в память врезалась). Вот где-то тогда, видимо, этот "нересурсный" мем и зарождался.

То есть "культурные" корни тут длинные. Ещё и Java подсуетилась.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[10]: Конец нересурсов
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 16.11.11 02:09
Оценка:
Здравствуйте, Klatu, Вы писали:

ГВ>>Поскольку я не знаю, что означает термин "профессионализм"

K>Почему-то я даже не удивлен

Ну что поделать. Могу только посоветовать ещё несколько способов перестать удивляться и начать удивлять самому:

— Выдернуть отдельные слова из реплики;
— Переставить их местами;
— Можно ещё и буквы перемешать.

Как видишь, перед тобой просто бескрайние горизонты!
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[11]: Конец нересурсов
От: Klatu  
Дата: 16.11.11 02:13
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

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


ГВ>>>Поскольку я не знаю, что означает термин "профессионализм"

K>>Почему-то я даже не удивлен

ГВ>Ну что поделать. Могу только посоветовать ещё несколько способов перестать удивляться и начать удивлять самому:


ГВ>- Выдернуть отдельные слова из реплики;

ГВ>- Переставить их местами;
ГВ>- Можно ещё и буквы перемешать.

ГВ>Как видишь, перед тобой просто бескрайние горизонты!


Спасибо за мастер-класс, но эти методы не для меня
Re[11]: Конец нересурсов
От: Klatu  
Дата: 16.11.11 02:13
Оценка:
Здравствуйте, vdimas, Вы писали:

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


K>>А про плавающие и косвенные ошибки ты решил скромно умолчать, или просто не в курсе что это такое?


V>Это от технологии не зависит.


Чего-чего?
Re[9]: Конец нересурсов
От: Klatu  
Дата: 16.11.11 02:15
Оценка: :)
Здравствуйте, vdimas, Вы писали:

K>>Да уж.. порой мне кажется, что для программиста это — насущная необходимость


V>Ну кому-то же надо и драйвера разрабатывать, и кодеки... Не всем же т.н. "программистам" сайты рисовать...


Больная тема?
А при чем тут драйверы с кодеками вообще?
Re[10]: Конец нересурсов
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 16.11.11 02:22
Оценка:
Здравствуйте, Klatu, Вы писали:

ГВ>>Уел, уел. Про "эксплоитную дырку" разрешаю вычеркнуть.

K>А про плавающие и косвенные ошибки ты решил скромно умолчать, или просто не в курсе что это такое?

О, чувствуется мастерство: два предположения, и оба — с явным переходом на личности.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[12]: Конец нересурсов
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 16.11.11 02:26
Оценка:
Здравствуйте, Klatu, Вы писали:

K>>>А про плавающие и косвенные ошибки ты решил скромно умолчать, или просто не в курсе что это такое?

V>>Это от технологии не зависит.
K>Чего-чего?

Садись, два.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.