Понедельник, 25 Ноября 2024, 07:09

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 6 из 8
  • «
  • 1
  • 2
  • 4
  • 5
  • 6
  • 7
  • 8
  • »
А зачем вообще нужен АСМ?
FumleadДата: Воскресенье, 26 Апреля 2015, 13:58 | Сообщение # 101
участник
Сейчас нет на сайте
Linka, Gudleifr, PATCH1, вам лопаты выдать? Вы на даты сообщений смотрели? dry

Параноик с гениальным планом по захвату мира.
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) Но конкретные тесты и т.д конечно не делал, я лишь упомянул что "возможно" чисто не помнил как имено)

Да ты только начал с шарпом. biggrin
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 лет стажа, должны быстро находить такую инфу) biggrin
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
}

я сказал что можно сделать вставку) я не говорил что можно без костылей))) вы уже под себя подстраиваете условия нашего спора))))
  • Страница 6 из 8
  • «
  • 1
  • 2
  • 4
  • 5
  • 6
  • 7
  • 8
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг