ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |

08.12.2019, 17:37
|
|
Познавший АНТИЧАТ
Регистрация: 24.04.2009
Сообщений: 1,730
Провел на форуме: 30140275
Репутация:
3256
|
|
Джефф Мэррисон (Jeff Marrison), автор реализованной на ассемблере x86_64 свободной (GPLv3) библиотеки HeavyThing, предлагающей в том числе реализации протоколов TLS 1.2 и SSH2, опубликовал видео под названием «Зачем писать на ассемблере?». В видео приводятся результаты тестирования при помощи утилит perf и strace простейшего приложения (вывод 'hello'), написанного на 13 языках программирования.
Фактически, сравниваются затраты на загрузку исполняемого образа и инициализацию сред выполнения для языков Assembler, C, C++, Go, Rust, Python, Perl, TCL, Java, PHP, NodeJS, Ruby и Bash. Использованные в видео примеры доступны для загрузки.
https://2ton.com.au/videos/tvs_part1/tvs_part1.mp4
|
|
|

08.12.2019, 17:58
|
|
Guest
Сообщений: n/a
Провел на форуме: 295690
Репутация:
24
|
|
АСМ по умолчанию, при правильном использовании не может быть ТОЧНО хуже того что написано на другом ЯП. Вопрос может быть ТОЛЬКО в трудоемкости.
Хочешь быстрее выделять память ? Сделай себе менеджер памяти. Хочешь быстрее выполнять код - оптимизируй код под процессор.
Да, на высокоуровневом языке ты один раз напишешь код и он будет оттранслирован в код под нужный процессор. Т.е. трудоемкость уменьшается в десятки раз. Но... нет. Лучше чем на асме - написать нельзя.
В конце-концов возьми код их виртуальной машины (например тот же ДотНет) и открой в IDA. Там будет асм. И этот код можно написать на асме лучше чем он есть сейчас. Но сложнее, дольше, геморней. Волосы у тебя повыпадут не только из жопы, у тебя и ресницы повыпадут. Но написать лучше можно.
=======================
Сравнивал как-то код на дотнете и на С++.
Циклы дотнет хавает просто божественно. И на асме за ним не угонишься ибо если дело касается какого-нибудь malloc - Дотнет отрабатывает просто моментально. Намного быстрее. Но... когда начинается какой-то сплошной участок - он даже и рядом не стоял.
Изначально глупо сравнение в скорости между асмом и "чем-то еще" ибо "что-то еще" в любом случае превращается в машинный код = асм.
|
|
|
|

08.12.2019, 18:26
|
|
Guest
Сообщений: n/a
Провел на форуме: 295690
Репутация:
24
|
|
В примере еще одна некорректность. Он слишком мал.
Си в самом начале подгружает кучу всякого барахла для своей работы. Тоесть на этом временном промежутке он явно отстает. И все будут отставать ибо это этап подготовки к работе. В асме его нет (в данном примере точно) так что тут и замерять нечего. Ежу понятно что конечно он будет быстрее на этом этапе. Лишние подготовительные этапы и прочие системные вызовы безусловно будут стопорить скорость испытуемого в самом начале, но в общем-то это такая себе жертва в угоду эффективности. Если и дальше продолжать код на асме без усовершенствований (например менеджера памяти) - плюсы с бустом (буст еще дольше будет грузиться вначале) - обгонят его как несмышленого котенка.
Замер требуется производить по какой-нибудь отмашке. Типо on_button_click какой-либо.
|
|
|
|

08.12.2019, 18:54
|
|
Guest
Сообщений: n/a
Провел на форуме: 295690
Репутация:
24
|
|
Вообще так если подумать... эти замеры половых органов и языков погромирования - это сравнения сладкого с прямоугольным. Какбэ... х/з.
Напишешь эффективный код на асме под x86 - молодец. Точно такой же код на плюсах будет сосать где-то вдалеке позади. Но. Под x64 тебе на асме надо будет писать другой код. А на плюсах - просто откомпилить и он будет работать.
На питоне ты за плюсами никогда не угонишься, но зато код на питоне могут юзать и на Маке и на Венде... да хоть на Ведроиде. На Асме - тебе придется писать код под каждую платформу. И именно писать ибо там переписывать дохуя. (хотя можно подумать о макросах каких-то но все-равно... это очень геморно).
И тут какбэ "что быстрее ?" да хрен его знает. Пожалуй парсить веб я буду лучше на Питоне, писать какой-то средний кодес на плюсах а системный на асме. И нет тут какбэ особого сравнения.
================================================== ====
Каждому инструменту - свое место. Можно-ли срубить дерево хирургическим скальпелем ? Ну.... наверное можно я не пробовал. Асм - скальпель. Им можно наверное рубить деревья но это будет глупо. Рубить деревья проще всего Питоном. И далее в таком духе.
|
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|