А зачем вообще нужен АСМ?
| |
Fumlead | Дата: Воскресенье, 26 Апреля 2015, 13:58 | Сообщение # 101 |
участник
Сейчас нет на сайте
| Linka, Gudleifr, PATCH1, вам лопаты выдать? Вы на даты сообщений смотрели?
Параноик с гениальным планом по захвату мира.
|
|
| |
PATCH1 | Дата: Воскресенье, 26 Апреля 2015, 14:02 | Сообщение # 102 |
заслуженный участник
Сейчас нет на сайте
| Цитата Archido ( ) Зачем С++ или Java? Можно взять обычный Си, отучить / отвязать его от любого рантайма и получать на выходе чистый машинный код. Для всякой экзотики можно заюзать небольшие асм вставки. Все.
Асм весьма полезен для изучения выхлопа, сгенерированного компилятором, и на основе которого можно оптимизировать свой изначальный код. Есть еще реверс инжиниринг (где асм правит балом) и всякая вирусная братия, где асму можно найти применение. Даже микроконтроллеры сейчас часто на Сях программируются можно взять C# (легче Си) и юзать ASM вставки) одно плохо) если тонкости ASM не знаешь, вставка будет медленее аналогичного кода на C# а время затраченое на написание кода на ASM будет колосально больше чем на C# . Если дело в производительности да Си будет быстрее, если код качественно написан, но есть очень большой риск утечки памяти при написании игры это может быть проблема, да и синтаксис на C# проще чем в Си (скорость разработки игры на C# будет быстрее) собственное здесь решает сам разработчик "осилит он" или нет. Железо не стоит на месте - оно совершенствуется и позволяет писать на более высокоуровневых языках код. тем самым повышая скорость разработки, а если знать тонкости и того же C# то можно и не намного и медлее написать кода на Си. Дело вкуса ) (в идеале код на Си и на C# если сравнивать (идеальный код) - которого нету) - на Си будет быстрее, спора нету)Добавлено (26 апреля 2015, 14:02) ---------------------------------------------
Цитата Fumlead ( ) Linka, Gudleifr, PATCH1, вам лопаты выдать? Вы на даты сообщений смотрели? Беларусь, г.Минск , почтовый Индекс 220017 . что там еще надо для получения лопаты по почте? (в хозяйстве пригодится всегда)
Сообщение отредактировал PATCH1 - Воскресенье, 26 Апреля 2015, 14:02 |
|
| |
Archido | Дата: Воскресенье, 26 Апреля 2015, 17:53 | Сообщение # 103 |
Сэнсэй
Сейчас нет на сайте
| PATCH1 Процитировал мой пост спустя два года, неплохо:) а чего тему то мусолить? На асме код сейчас совсем не пишут:) для микроконтроллеров, специфики вроде ПО для марсоходов, драйверов - есть си. Для крупных прикладных проектов с требованием к высокой производительности (игровые движки, например) - есть плюсы. Все, что работает поверх сейчас пишется на шарпе, джаве, етс. Всему свое место как говорится.
Цитата Некоторые программисты говорят, что ASM – это недоразумение, а не ЯП А некоторые программисты считают программистов, которые так говорят - большим недоразумением:)
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
PATCH1 | Дата: Воскресенье, 26 Апреля 2015, 18:00 | Сообщение # 104 |
заслуженный участник
Сейчас нет на сайте
| Цитата Archido ( ) PATCH1 Процитировал мой пост спустя два года, неплохо:) а чего тему то мусолить? На асме код сейчас совсем не пишут:) для микроконтроллеров, специфики вроде ПО для марсоходов, драйверов - есть си. Для крупных прикладных проектов с требованием к высокой производительности (игровые движки, например) - есть плюсы. Все, что работает поверх сейчас пишется на шарпе, джаве, етс. Всему свое место как говорится. чуть меньше двух лет p.s) c выше сказаным согласен, но для параноиков которым нужно чуть больше производительности пытался пояснить то что они навреатли напишут алгоритмы производительнее чем на исходным языке, да и смысла нету с нынишними мощностями устройств) поповоду даты) тема сама всплыла) я на последние сообщение обратил внимание на остальные даты не смотрел) Цитата Archido ( ) Цитата Некоторые программисты говорят, что ASM – это недоразумение, а не ЯП
А некоторые программисты считают программистов, которые так говорят - большим недоразумением:) а вот эта цитата Linka ) а не моя)))
|
|
| |
Gudleifr | Дата: Воскресенье, 26 Апреля 2015, 18:01 | Сообщение # 105 |
почти ветеран
Сейчас нет на сайте
| Archido, см. заблуждение #1. А тему эту мусолить надо, иначе "недоразумений" не оберешься.
Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
|
|
| |
HPlusDiese | Дата: Воскресенье, 26 Апреля 2015, 18:06 | Сообщение # 106 |
участник
Сейчас нет на сайте
| PATCH1, В шарпе невозможно сделать вставку на асме. Да и это противоречит самой концепции .net,а. А на плюсах, да. Без них туго. В некоторых случаях simd расширения дают буст в 2-3 раза. Если делать просто вставки на асме, то это бесполезно, компилятор лучше оптимизирует.
З.Ы. Как можно сравнивать C# и С? Совершенно разные языки. PATCH1, Какой у тебя опыт с C# и С? Я 5 лет на шарпе и 2 года на плюсах пишу.
Сообщение отредактировал HPlusDiese - Воскресенье, 26 Апреля 2015, 18:14 |
|
| |
PATCH1 | Дата: Воскресенье, 26 Апреля 2015, 18:15 | Сообщение # 107 |
заслуженный участник
Сейчас нет на сайте
| Цитата HPlusDiese ( ) PATCH1, В шарпе невозможно сделать вставку на асме. Да и это противоречит самой концепции .net,а. А на плюсах, да. Без них туго. В некоторых случаях simd расширения дают буст в 2-3 раза. Если делать просто вставки на асме, то это бесполезно, компилятор лучше оптимизирует. Зацените) способ 1 (прямо в C#) способ 2 (написать DLL на Delphi (Object Pascal) или C++ с ASM вставками и вызвать в коде C#)
|
|
| |
HPlusDiese | Дата: Воскресенье, 26 Апреля 2015, 18:23 | Сообщение # 108 |
участник
Сейчас нет на сайте
| PATCH1, Написать неуправляемую dll - не считается. Да и это плохой подход. Возможны неожиданные последствия, вроде потери контекста выполнения. Цитата PATCH1 ( ) способ 1 (прямо в C#) По сути - тоже просто вызов неуправляемого метода. То же самое, что способ 2. Вызвали API винды. В функцию передали массив байт. С точки зрения шарпа - это просто набор цифр, не более того.
Где вставка не асме в шарпе? Дай пруф.
И оба этих способа - плохой подход. Как и любое взаимодействие с нативным кодом. Главной идеей .net - платформонезависимый код, который без каких-либо манипуляций запустится где-угодно. Никакой перекомпиляции и т.п. Прям как java.
Сообщение отредактировал HPlusDiese - Воскресенье, 26 Апреля 2015, 18:28 |
|
| |
PATCH1 | Дата: Воскресенье, 26 Апреля 2015, 18:29 | Сообщение # 109 |
заслуженный участник
Сейчас нет на сайте
| Цитата HPlusDiese ( ) Как можно сравнивать C# и С? Совершенно разные языки. PATCH1, Какой у тебя опыт с C# и С? Я 5 лет на шарпе и 2 года на плюсах пишу. С# - 3 года, C- базово знаю, я их не сравниваю в плане чего то сверхъестественного, я их сравниваю поверхостно вплане "быстроты написание алгоритмов, и производительности" и исходя из их возможностей языков, естественно это разные языки Си более близок к машиному коду, а C# - более человекопонятный что ли) автоматический сборщик мусора , а Си - опять же более приближен к машиному коду, "ручной" сборщик мусора, возня с указателями и т.д допустить ошибку на Си проще чем на C# но Си более производительнее (если написать качественный код) я неговорю что одно хуже другого. Естествено можно судить так, ASM,Си - для драйверов, С++ - для драйверов, программ, игр, C# - для игр программ (еще можно для сайтов) , php, python - для сайтов. Но ведь можно и ту же змейку на ASM и Си реализовать - да сложнее но можно. Тема называется зачем АСМ. я высказываю свою точку зрения) что то мне подсказывает что когда ставили сервер ВОВ или L2 (сервера чьи написаны на C/С++) и аппаратные возможности тогда были меньше, наверно использовали кое где вставки ASM. Сейчас забыли про этот язык но лет 12-13 назад еще помнили.
Добавлено (26 апреля 2015, 18:29) --------------------------------------------- Цитата HPlusDiese ( ) Главной идеей .net - платформонезависимый код, который без каких-либо манипуляций запустится где-угодно. Никакой перекомпиляции и т.п. Прям как java. Я эт вкурсе и я эт писал) но шутки ради я написал что возмонжо использовать "не безопасный код в C#" - в эту тему сильно не внедрялся, но помню что где то такое находил. По этому четко и не утверждал что это прям The best) Но конкретные тесты и т.д конечно не делал, я лишь упомянул что "возможно" чисто не помнил как имено)
Сообщение отредактировал PATCH1 - Воскресенье, 26 Апреля 2015, 18:33 |
|
| |
HPlusDiese | Дата: Воскресенье, 26 Апреля 2015, 18:35 | Сообщение # 110 |
участник
Сейчас нет на сайте
| Цитата PATCH1 ( ) аппаратные возможности тогда были меньше, наверно использовали кое где вставки ASM. Сейчас забыли про этот язык но лет 12-13 назда еще помнили. Во всех крупных движках есть вставки на асме. Не зря же simd расширения придумали.Добавлено (26 апреля 2015, 18:34) --------------------------------------------- PATCH1, И нахрен си. Процедурная хрень. С++ и D лучшее Добавлено (26 апреля 2015, 18:35) ---------------------------------------------
Цитата PATCH1 ( ) Я эт вкурсе и я эт писал) но шутки ради я написал что возмонжо использовать "не безопасный код в C#" - в эту тему сильно не внедрялся, но помню что где то такое находил. По этому четко и не утверждал что это прям The best) Но конкретные тесты и т.д конечно не делал, я лишь упомянул что "возможно" чисто не помнил как имено) Да ты только начал с шарпом.
|
|
| |
PATCH1 | Дата: Воскресенье, 26 Апреля 2015, 18:40 | Сообщение # 111 |
заслуженный участник
Сейчас нет на сайте
| Цитата HPlusDiese ( ) Во всех крупных движках есть вставки на асме. Не зря же simd расширения придумали. Добавлено (26 апреля 2015, 18:34) --------------------------------------------- PATCH1, И нахрен си. Процедурная хрень. С++ и D лучшее
Добавлено (26 апреля 2015, 18:35) --------------------------------------------- Цитата PATCH1 () Я эт вкурсе и я эт писал) но шутки ради я написал что возмонжо использовать "не безопасный код в C#" - в эту тему сильно не внедрялся, но помню что где то такое находил. По этому четко и не утверждал что это прям The best) Но конкретные тесты и т.д конечно не делал, я лишь упомянул что "возможно" чисто не помнил как имено)
Да ты только начал с шарпом. Ня без DLL чисто на шарпе, или делегаты и указатели ну тоже не в счет?
|
|
| |
HPlusDiese | Дата: Воскресенье, 26 Апреля 2015, 18:40 | Сообщение # 112 |
участник
Сейчас нет на сайте
| Цитата PATCH1 ( ) я их не сравниваю в плане чего то сверхъестественного, я их сравниваю поверхостно вплане То, что C# выполняется на виртуальной машине и в принципе не может быть быстрее, как и не может иметь асм вставок, ты совсем не учитывал?
|
|
| |
Gudleifr | Дата: Воскресенье, 26 Апреля 2015, 18:41 | Сообщение # 113 |
почти ветеран
Сейчас нет на сайте
| Цитата HPlusDiese ( ) Главной идеей .net - платформонезависимый код, который без каких-либо манипуляций запустится где-угодно. Как бы ошибка изначально. Как и Java речь идет о дважды непереносимом коде! Во-первых, он переносим только в пределах .net- или java-машины (да еще, обычно, только в пределах одной-двух версий), которую для именно вашей машины не факт, что уже написали и еще не перестали поддерживать. Во-вторых, любая попытка сделать что-то нетривиальное натыкается на сопротивление (как выше вставка кода), и заведомо непереносима. И .NET и Java - это просто разновидности BASIC (т.е. облегчение жизни путем замены реальной машины виртуальной). Причем, почему-то в них (в отличие от нормальных BASIC-ов) это сделано не в интересах программиста, а в интересах ОС.
Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
|
|
| |
Archido | Дата: Воскресенье, 26 Апреля 2015, 18:44 | Сообщение # 114 |
Сэнсэй
Сейчас нет на сайте
| Gudleifr Я не вижу там никаких противоречий. И нечего тут мусолить, все слишком очевидно: под конкретную задачу - конкретный инструмент. Всякие костыли оставим любителям извращений.
PATCH1 Параноики и любители костылей - это отдельная тема:) при нормальном раскладе главное понимать, что если приходится прибегать, скажем в шарпе, к unsafe указателям (бывают исключения конечно) и/или попыткам напрямую дергать даже байт код - то инструмент под задачу выбран явно не правильно.
HPlusDiese Боже, какие вставки на асме? Уже давно интринсики были придуманы, под x64 в студии вообще асм вставки запрещены, по вполне очевидным причинам.
C++ - он особенный. С помощью него можно не только выстрелить себе в ногу, но и повеситься в пустой комнате:)
|
|
| |
PATCH1 | Дата: Воскресенье, 26 Апреля 2015, 18:46 | Сообщение # 115 |
заслуженный участник
Сейчас нет на сайте
| Цитата HPlusDiese ( ) То, что C# выполняется на виртуальной машине и в принципе не может быть быстрее, как и не может иметь асм вставок, ты совсем не учитывал? Виртуальную машину я учитывал, так же как и руки которые пишут на ASM , я имел ввиду вставка ASM может быть быстрее (при ровных руках) "нативной функции" той же на C#. Странно как с 5 летним стажем вы этим не интересовались)
Добавлено (26 апреля 2015, 18:46) --------------------------------------------- Цитата Archido ( ) PATCH1 Параноики и любители костылей - это отдельная тема:) при нормальном раскладе главное понимать, что если приходится прибегать, скажем в шарпе, к unsafe указателям (бывают исключения конечно) и/или попыткам напрямую дергать даже байт код - то инструмент под задачу выбран явно не правильно.
HPlusDiese Боже, какие вставки на асме? Уже давно интринсики были придуманы, под x64 в студии вообще асм вставки запрещены, по вполне очевидным причинам. Ну в теме не уточнялось мы тут обсуждаем фулл ASM или не фулл) (я про параноиков и костылей) )))) и я лишь упомянул что это возможно) а тут посыпалось))) Насчет параноиков и инструменты согласен) нынче Железо развивается очень быстро) нету смысла в выиграше лишнего байта и доли миллионой секунды процессорного времени (и то эт спорный вопрос - зависет от рук) - я про то что будет производительнее или нет) тема кстати про ассемблер и для чего он нужен)) так что это было маленькое дополнение)
Сообщение отредактировал PATCH1 - Воскресенье, 26 Апреля 2015, 18:54 |
|
| |
Gudleifr | Дата: Воскресенье, 26 Апреля 2015, 18:53 | Сообщение # 116 |
почти ветеран
Сейчас нет на сайте
| Цитата Archido ( ) Всякие костыли оставим любителям извращений. Ну, как бы, по сравнению с языками ассемблера, все остальное и есть - "костыли". И речь в этой теме должна идти о причинах, когда приходится отбросить костыли и сделать руками.
Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.
Сообщение отредактировал Gudleifr - Воскресенье, 26 Апреля 2015, 18:53 |
|
| |
HPlusDiese | Дата: Воскресенье, 26 Апреля 2015, 18:59 | Сообщение # 117 |
участник
Сейчас нет на сайте
| PATCH1, Цитата PATCH1 ( ) Ня без DLL чисто на шарпе, или делегаты и указатели ну тоже не в счет? Делегаты и указатели - часть языка. Как без них можно написать что-то сложнее хеловорда? Цитата PATCH1 ( ) Ня без DLL чисто на шарпе, или делегаты и указатели ну тоже не в счет? Грязный хак. Gudleifr, Я тебя прекрасно понимаю. Но сама идея явы и шарпа прекрасна, но реализация подкачала. Если бы ява машина и дотнетовския clr были в осях по дефолту, то мы бы получили идеальные условия, в плане написал и собрал одни раз, запустил везде.
Цитата Archido ( ) Боже, какие вставки на асме? Уже давно интринсики были придуманы, под x64 в студии вообще асм вставки запрещены, по вполне очевидным причинам. Я их и имею ввиду. Всё, что выходит за рамки языка так называю. Плохая привычка. Ну ты меня понял короче.
|
|
| |
PATCH1 | Дата: Воскресенье, 26 Апреля 2015, 19:08 | Сообщение # 118 |
заслуженный участник
Сейчас нет на сайте
| Цитата HPlusDiese ( ) Делегаты и указатели - часть языка. Как без них можно написать что-то сложнее хеловорда? Я эт к тому что вы предрались)) вызов DLL - не в счет) это тоже не в счет) а Делегаты и указатели как я понял наконец то в счет)) Цитата HPlusDiese ( ) Грязный хак. Грязный или чистый - разницы нету, я лишь написал что эт возможно) а вы утверждали что эт не возможно. Я доказал что эт возможно. (в принципе могли и сами прогуглить , за 5 лет стажа, должны быстро находить такую инфу)
|
|
| |
HPlusDiese | Дата: Воскресенье, 26 Апреля 2015, 19:14 | Сообщение # 119 |
участник
Сейчас нет на сайте
| Цитата PATCH1 ( ) Грязный или чистый - разницы нету, я лишь написал что эт возможно) а вы утверждали что эт не возможно. Я доказал что эт возможно. (в принципе могли и сами прогуглить , за 5 лет стажа, должны быстро находить такую инфу) Перфоманса не прибавит. Да и назвать это асм вставкой трудно. Ну ок. Перемнож два 4 мерных вектора одной инструкцией. Высока вероятность undefined behaviour. Покажи пример без костылей. Типа такого: _asm { blah-blah-blah }
|
|
| |
PATCH1 | Дата: Воскресенье, 26 Апреля 2015, 19:17 | Сообщение # 120 |
заслуженный участник
Сейчас нет на сайте
| Цитата HPlusDiese ( ) Перфоманса не прибавит. Да и назвать это асм вставкой трудно. Ну ок. Перемнож два 4 мерных вектора одной инструкцией. Высока вероятность undefined behaviour. Покажи пример без костылей. Типа такого: _asm { blah-blah-blah } я сказал что можно сделать вставку) я не говорил что можно без костылей))) вы уже под себя подстраиваете условия нашего спора))))
|
|
| |
|