C#, И прочий .NET |
Здравствуйте, гость ( Вход | Регистрация )
C#, И прочий .NET |
04 May 2012, 10:23
(Сообщение отредактировал Guevara-chan - 04 May 2012, 11:22)
Сообщение
#41
|
|
•●Revolucionario●• Сообщений: 2 467 Спасибо сказали: 5934 раза |
Смотря какое. Смотря какому. Многие алгоритмы, и я говорю не только о практике использования ассемблерных вставок, вообще не переносимы до такой степени, чтобы всерьез сравнивать... Но скорее всего будет, хотя слова "разы" я точно не писала.
-------------------- life MOV.I #life+1, *life
האם יש זמן לעצור ? |
|
|
04 May 2012, 13:54
Сообщение
#42
|
|
Power Member Сообщений: 175 Спасибо сказали: 6 раз |
Смотря какое. Смотря какому. Многие алгоритмы, и я говорю не только о практике использования ассемблерных вставок, вообще не переносимы до такой степени, чтобы всерьез сравнивать... Но скорее всего будет, хотя слова "разы" я точно не писала. Тред замечу, от 2006 года сейчас 2012 У тебя распостранённая ошибка ненавистников management code. Берем задачу с решением оптимизированным на unmanaged, переносим его в management Получаем бред и тормоза - радостно носимся с мантрой management code is shit -------------------- |
|
|
04 May 2012, 14:39
(Сообщение отредактировал Guevara-chan - 04 May 2012, 15:53)
Сообщение
#43
|
|
•●Revolucionario●• Сообщений: 2 467 Спасибо сказали: 5934 раза |
Да там задачи-то, по сути, никакой нет. Тупо разногласия в рассмотрении байт. Даже специально сейчас протестировала гипотетический аналог на PB:
Код EnableExplicit; Essential. #WordCap = 2; We need 2 words (4 bytes). Structure DoubleVision StructureUnion; 2 merged arrays (byte & word one). Array wArr.u(#WordCap-1); Desired array, aligned there. Array bArr.a(0); Base array, bounds doesn't matter. EndStructureUnion; They are shared, however... EndStructure Macro PP(TypeName, Num, Val, TypeConst); Sugar. Debug TypeName + Str(Num+1) + ": " + Hex(Val, TypeConst) EndMacro Procedure FillUp(Array Arr.a(1)); Получатель байт. Define I, Val.a, Tofix = (ArraySize(Arr())+1)*SizeOf(Word)-1; Подготовка, переcчет границ. For I = 0 To ToFix : Val = Random(255) : DisableDebugger; Подавляем отладчик, здесь он не прав. Arr(I) = Val : EnableDebugger : PP("Byte", I, Val, #PB_Byte) : Next; Выдаем данные и записываем. EndProcedure Procedure Test(Array Arr.u(1)); Получатель слов. Debug "-----------------------------"; Разделитель. Define I, Tofix = ArraySize(Arr()); Получаем размер массива... For I = 0 To ToFix : PP("Word", I, Arr(I), #PB_Word) : Next; Вывод. EndProcedure Define I, ToFix, DWArray.DoubleVision : With DWArray; Подготовка. FillUP(\bArr()) : Test(\wArr()) : EndWith; Тестирование. ...Вот чуть избыточно получилось, т.к. я описала как генератор, так и получатель. Помимо того задачи нет, есть единственная проблема с shared-границей. P.S. Еще оно "managed" а не "management". Но это так, к слову. -------------------- life MOV.I #life+1, *life
האם יש זמן לעצור ? |
|
|
04 May 2012, 15:48
Сообщение
#44
|
|
Яблочный произвол! Сообщений: 11 080 Спасибо сказали: 3988 раз |
|
|
|
04 May 2012, 15:55
(Сообщение отредактировал Guevara-chan - 04 May 2012, 15:59)
Сообщение
#45
|
|
•●Revolucionario●• Сообщений: 2 467 Спасибо сказали: 5934 раза |
Цитата не нашел собственно того самого перевода из байт в слова. или тестировался только порядок байт? А его там и быть не должно. Я просто разметила 2 разнотипных массива (Byte/Word) на одном участке памяти. Это же все равно абстракция. ...Ведь нету на самом деле никаких таблиц, связанных списков и чисел с плавающей точкой: только наборы байт и способы их обработки. Цитата источник Fixed. -------------------- life MOV.I #life+1, *life
האם יש זמן לעצור ? |
|
|
04 May 2012, 16:21
Сообщение
#46
|
|
Яблочный произвол! Сообщений: 11 080 Спасибо сказали: 3988 раз |
ой, не заметил. это ваше StructureUnion сбивает с толку.
так какой результат? |
|
|
04 May 2012, 16:40
(Сообщение отредактировал Guevara-chan - 04 May 2012, 16:47)
Сообщение
#47
|
|
•●Revolucionario●• Сообщений: 2 467 Спасибо сказали: 5934 раза |
Более чем удовлетворительный, как по мне (извиняюсь за сбитые комментарии, копировала из сообщения):
...А вот CLR такого сделать не даст чисто физически. Управляемость, видите ли. -------------------- life MOV.I #life+1, *life
האם יש זמן לעצור ? |
|
|
04 May 2012, 16:46
Сообщение
#48
|
|
VCMI developer Сообщений: 377 Спасибо сказали: 690 раз |
Смотря какое. Смотря какому. Многие алгоритмы Это скорее идет от "Очень объекто-ориентированного программирования" чем от managed\unmanaged. Все запихивают за 3-4 уровнями интерфейсов да абстракных классов, а кто начнет выяснять как оно внутрях устроено - секрет, тайна, расстрел за нарушение ООПшной инкапсуляции. Так и тут - а вы уверены что из двух Int8 получится Int16? А вы уверены что порядок байт в слове правильный? И толку потом от этой compile-time проверки типов если почти везде идет принудительное преобразование одного во второй, а все баги отлавливать приходится при запуске. Жава тут соригинальничала еще круче - там Integer и int это абсолютно разные вещи, которые и вести себя могут каждый по своему. -------------------- Слава Україні!
|
|
|
05 May 2012, 00:32
Сообщение
#49
|
|
Power Member Сообщений: 175 Спасибо сказали: 6 раз |
P.S. Еще оно "managed" а не "management". Но это так, к слову.
[/quote] Ай блин, верно да )) описался. -------------------- |
|
|
06 May 2012, 16:08
Сообщение
#50
|
|
Элементалист Сообщений: 877 Спасибо сказали: 438 раз |
|
|
|
29 Apr 2018, 19:33
(Сообщение отредактировал Undead - 29 Apr 2018, 19:34)
Сообщение
#51
|
|
Ёж Сообщений: 662 Спасибо сказали: 881 раз |
Бамп.
В 18-м как с шарпом обстоит? Я, как 1Сник несчастный, фактически знаю его синтаксис (в 1С он аналогичен), но не практиковался. То есть, я даже не знаю, а как и где на нём кодить. Стоит вообще начинать, или лучше сразу плюсы? -------------------- |
|
|
29 Apr 2018, 21:47
(Сообщение отредактировал t800 - 29 Apr 2018, 22:00)
Сообщение
#52
|
|
Разработчик Сообщений: 534 Спасибо сказали: 221 раз |
Бамп. В 18-м как с шарпом обстоит? Я, как 1Сник несчастный, фактически знаю его синтаксис (в 1С он аналогичен), но не практиковался. То есть, я даже не знаю, а как и где на нём кодить. Стоит вообще начинать, или лучше сразу плюсы? Если с точки зрения Работы в GameDev то C# - это Unity C++ - Unreal Engine Unreal Engine для начинающих сложней соответственно мелких проектов на нем делают меньшие и работу на UE Вы найдете скорей всего только в Офисе, если хотите работать на удаленке ИМХО лучше скрипты да ассеты на C# для Unity клепать. Вот так вот. -------------------- |
|
|
03 May 2018, 08:55
(Сообщение отредактировал feanor - 03 May 2018, 08:59)
Сообщение
#53
|
|
laughed as one fey Сообщений: 12 166 Спасибо сказали: 20585 раз |
забавно читать тред 2012 года
Цитата Я, как 1Сник несчастный, фактически знаю его синтаксис (в 1С он аналогичен) лол Цитата Стоит вообще начинать, или лучше сразу плюсы? Вообще-то их ниши вполне себе разошлись. |
|
|
06 May 2018, 20:14
Сообщение
#54
|
|
В миру GrayFace Сообщений: 2 528 Спасибо сказали: 817 раз |
В 18-м как с шарпом обстоит? Стоит вообще начинать, или лучше сразу плюсы? Зависит от области, в которой хочешь работать и от того, насколько тебе по душе будет такой отсталый язык, как c++. -------------------- ДНК банана на 50% состоит из человека.
|
|
|
17 May 2018, 01:13
Сообщение
#55
|
|
Ёж Сообщений: 662 Спасибо сказали: 881 раз |
В 18-м как с шарпом обстоит? Стоит вообще начинать, или лучше сразу плюсы? Зависит от области, в которой хочешь работать и от того, насколько тебе по душе будет такой отсталый язык, как c++. Я хочу быть более-менее универсальным. Вообще моя цель близка к геймдеву, разработке своего софта и в далёкой перспективе - к своему движку. У меня не хватит времени на всё, что интересно, поэтому думаю выбирать из Java, C++ и C#. Критерии - хорошая оптимизация, поддержка ассемблера, потенциально возможная мультиплатформенность. Но есть ещё один критерий - хватит ли у меня сил на освоение. -------------------- |
|
|
17 May 2018, 09:38
(Сообщение отредактировал t800 - 17 May 2018, 09:40)
Сообщение
#56
|
|
Разработчик Сообщений: 534 Спасибо сказали: 221 раз |
В 18-м как с шарпом обстоит? Стоит вообще начинать, или лучше сразу плюсы? Зависит от области, в которой хочешь работать и от того, насколько тебе по душе будет такой отсталый язык, как c++. Я хочу быть более-менее универсальным. Вообще моя цель близка к геймдеву, разработке своего софта и в далёкой перспективе - к своему движку. У меня не хватит времени на всё, что интересно, поэтому думаю выбирать из Java, C++ и C#. Критерии - хорошая оптимизация, поддержка ассемблера, потенциально возможная мультиплатформенность. Но есть ещё один критерий - хватит ли у меня сил на освоение. C# - это реально только винда. Java - это никакого ASM Соответственно, если Вы действительно планируете писать свой движок, то изучайте С++ -------------------- |
|
|
17 May 2018, 11:28
Сообщение
#57
|
|
Ёж Сообщений: 662 Спасибо сказали: 881 раз |
Вероятно, придётся кодить на всех трёх на уровне джуниора, чтобы потом сделать выбор.
-------------------- |
|
|
18 May 2018, 00:10
Сообщение
#58
|
|
Member Сообщений: 99 Спасибо сказали: 82 раза |
В 18-м как с шарпом обстоит? Стоит вообще начинать, или лучше сразу плюсы? Зависит от области, в которой хочешь работать и от того, насколько тебе по душе будет такой отсталый язык, как c++. Я хочу быть более-менее универсальным. Вообще моя цель близка к геймдеву, разработке своего софта и в далёкой перспективе - к своему движку. У меня не хватит времени на всё, что интересно, поэтому думаю выбирать из Java, C++ и C#. Критерии - хорошая оптимизация, поддержка ассемблера, потенциально возможная мультиплатформенность. Но есть ещё один критерий - хватит ли у меня сил на освоение. C++ не советовал бы. Сложно, сомнительная ситуация на рынке. Java уж больно квадратично-гнездовая, скукота. Но платят норм. C# поможет найти работу не в геймдеве, если не сложится. Ассемблер юзнуть не проблема - https://www.codeproject.com/Articles/1392/U...-assembler-in-C (Я вообще на пыхе пишу, это лишь личное мнение ) |
|
|
18 May 2018, 13:24
Сообщение
#59
|
|
laughed as one fey Сообщений: 12 166 Спасибо сказали: 20585 раз |
Цитата Я хочу быть более-менее универсальным. Вообще моя цель близка к геймдеву, разработке своего софта и в далёкой перспективе - к своему движку. У меня не хватит времени на всё, что интересно, поэтому думаю выбирать из Java, C++ и C#. Критерии - хорошая оптимизация, поддержка ассемблера, потенциально возможная мультиплатформенность. Но есть ещё один критерий - хватит ли у меня сил на освоение. Если гейдев, то плюсы, так-то, но это "большой" гейдев, который реже белого слона. В тайге. Реальность гейдева, кажца, это веселые фермы, клоноаркады и "три в ряд" на андроидоайфон. Хорошая оптимизация как функционал языка - какая-то школьничья дичь. Нормально делай, нормально будет. Ну, шарп и ява - байткод и сборщик мусора, а плюсы - нативные, с этим различием ничего не сделаешь, но в большинстве прикладных задач если ты уперся в производительность JVM/CLR, ты, скорее всего, сделал что-то не так. С мультиплатформенностью сомнительное первое место берет джава, наверн (одинаково мерзко работает на всех платформах, зато без перекомпиляции), потом плюсы, потом шарп (у него получше, чем пять лет назад, но все равно не восторг. Хотя игрушки на OpenTK сожрет, вроде, и моно, и ксамарин) Ассемблер? В 2018 году и, более того, на перспективу? Как аргумент? Серьезно? Цитата Ассемблер юзнуть не проблема - https://www.codeproject.com/Articles/1392/U...-assembler-in-C чисто прагматически - проблема, по крайней мере, по сравнению с плюсами с их declspec(naked) и инлайновыми асмовыми вставками. просто потому что накладные расходы на переход к неуправляемому коду/маршаллинг данных великоваты, приходится выносить код в внешние либы сразу крупными кусками, и значит, все равно надо учить хотя бы ту же сишечку (хотя сишечку учить надо все равно, сишечка делает человеком). с другой стороны, использование ассемблера - это прям вообще пример пресловутой преждевременной оптимизации |
|
|
18 May 2018, 20:47
Сообщение
#60
|
|
Member Сообщений: 99 Спасибо сказали: 82 раза |
|
|
|
Текстовая версия | Сейчас: 19 April 2024 - 22:47 |
Copyright by Алексей Крючков
Programming by Degtyarev Dmitry |