- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
/// <summary>
/// Check if this char is digit
/// </summary>
/// <param name="symbol">Some char</param>
/// <returns>True if is digit</returns>
private static bool IsDigit(char symbol)
{
List<char> digits = new List<char>();
digits.Add('0');
digits.Add('1');
digits.Add('2');
digits.Add('3');
digits.Add('4');
digits.Add('5');
digits.Add('6');
digits.Add('7');
digits.Add('8');
digits.Add('9');
return digits.Contains(symbol);
}
так сказать код от велосипедиста, сделал свой IsDigit() хотя уже есть char.IsDigit()
xaionaro 13.08.2009 09:09 # −1
А прежде чем читать далее, поймите, я человек очень замороченный на оптимизаци, поэтому C# я изначально ненавижу и решение с "#define" хоть и противоречит идеологии C#, но тем ни менее является самым, ИМХО, оптимальным, т.ч. на это решение прошу не ругаться. Тем кому не нравится, пусть читают "Ну или в худшем случае, ..."
В очень многих программах основной нагрузкой является текстообработка, либо сортировка, поэтому такие функции как isDigit() очень важно писать крайне оптимально. А наиболее быстрой реализацией является, ИМХО, определить один раз массив размером в 256 элементов в котором расставлены единицы там не где цифра и нули там где цифра, и всю функцию, говоря Сишным языком, заменить на "#define isDigit(sym) УПОМЯНУТЫЙ_МАССИВ[(unsigned char)sym]". Это делается за 1-2 инструкции и без вызова функции. Ну или в худшем случае, кто хочет именно делать каждый раз вызов функции (push, call, pop и бла-бла-бла), сделать таки функцию с "return УПОМЯНУТЫЙ_МАССИВ[(unsigned char)sym]".
xaionaro 13.08.2009 09:12 # 0
guest 13.08.2009 09:43 # +1
Ту страшнее то что при каждом вызове он заново его инициализирует список.
xaionaro 13.08.2009 09:44 # 0
А C# я теперь не люблю ещё больше после такой информации :)
guest 04.09.2009 12:45 # +0.2
в нормальные люди и проверяют. Ну и естественно, если идет строка, то можно превратить в массив символов и проверить, сделать быстрый regexp
guest 04.09.2009 15:30 # 0
guest 13.08.2009 13:36 # −3.2
если это не используется в циклах с мульоном итераций оптимизация нах не нужна.
единственно лист надо статиком прописать.
guest 13.08.2009 13:39 # +1.2
xaionaro 13.08.2009 13:40 # 0
guest 13.08.2009 20:54 # −3.2
код выполняется редко и есть хуева туча мест в проге где можно оптимизировать.
А этот код нормальный читаемый и под профилером наврядли вообще будет заметен.
Я встречал долбоебов которые боялись код выносить в отдельный метод обьясняя это тем что вызов метода жрет ресурс.
guest6 29.08.2023 02:03 # 0
Наиболее горячие методы будут, вероятно, заинлайнены JITом.
guest6 29.08.2023 23:09 # 0
guest 13.08.2009 19:03 # +3
И массив прийдётся делать на 65536 элементов т. к. в C# используется Unicode
xaionaro 13.08.2009 19:13 # −1
А если с массивом такая проблема, есть общеизвестный способ двойного сравнения (sym>='0' && sym<='9')
guest 04.09.2009 12:48 # +2
guest6 29.08.2023 02:02 # 0
xaionaro 13.08.2009 19:15 # 0
guest 13.08.2009 19:27 # +2
xaionaro 13.08.2009 21:52 # 0
Dimarius 13.08.2009 21:21 # −1.8
К вопросу о твоём решении проблемы методами С++. Кэш не резиновый. Ты предлагаешь тратить кучу памяти на массив, который придётся периодически подгружать в кеш, если программа целиком в нём не умещается. А это здорово замедлит её исполнение. Работу с кешем ты не в силах оптимизировать.
xaionaro 13.08.2009 22:02 # 0
2.) Ты ошибаешься, думая что я пишу на C++;
3.) Ты ошибаешься, что С# быстрее Си, ибо Си намного более приближен к машинному языку, а значит в нём меньше лишних затрат (т.е. почти все затраты связаны с неграмотностью программиста, а не с тяжестью функционала языка);
4.) Ты ошибаешься что С++ даёт универсальный код (не зря придумали "#ifdef __amd64__" и т.п.;)
5.) Ты _очень крупно_ ошибаешься, что Си не использует возможности железа (man gcc);
6.) 256байт ОЗУ - не такая и куча памяти, хотя да - для кеша не так и мало. В любом случае MOV из ОЗУ на Athlon занимает 4 такта (а не из ОЗУ - 1 такт), а двойное сравнение - 3 такта (два сравнения + AND).
xaionaro 13.08.2009 22:06 # 0
guest 13.08.2009 22:11 # −4
Говорят блять что сейчас главное скорость разработки и работоспособность приложения а скока памяти оно жрет не так важно 100МБ или 200MБ на это заказчикам покласть.
А Задротные неудачники вечно пиздят а на с++ на 0.01мс быстрее а на АСМ еще на 0.01 мс быстрее.
Тут блять мы не програмирование реалтайм систем драйверов и прочего говна обсуждаем и примеры говнокода не из них приведены.
неужели это так сложно понять??? я просто охуеваю скока же задротов....
xaionaro 13.08.2009 22:16 # +0.2
Скажу по секрету, более 95% ПО, которое я использую, писано на Pure C, просто из-за его качества... Мне приятно работать с таким ПО :)
guest 13.08.2009 22:21 # −2.2
xaionaro 13.08.2009 22:26 # −0.8
guest 13.08.2009 22:31 # −1
xaionaro 13.08.2009 22:43 # +0.2
guest 13.08.2009 22:51 # −0.2
xaionaro 13.08.2009 22:28 # 0
guest 13.08.2009 22:36 # 0
протоколы я разрешаю использовать :)!!
xaionaro 13.08.2009 22:48 # +0.2
И, "слава Богу", этот php код выполняется не на моих компьютерах :). Я ведь "лазая по сайтам" получаю не php-код, а результат его работы, и он (результат) меня так не пугает)
guest 13.08.2009 22:55 # 0
и не пофиг где код выполняется у вас или на сервере или еще где??? мне например покласть главное что когда я вписываю в строку адрес у меня появляется сайт а уж как оно там все сделано меня не особо ебет какие там процессоры какие операционки и тд.
xaionaro 13.08.2009 22:56 # 0
пъянь 14.08.2009 00:18 # 0
xaionaro 14.08.2009 10:02 # +2
Просто если пишешь программу, не надо без острой необходимости сидеть и вылизывать часами каждую строчку, но надо пытаться с первого раза писать нормально (ведь если иметь опыть думать над этим, это не затормаживает процесс).
guest 14.08.2009 10:27 # +3
xaionaro 14.08.2009 10:34 # 0
Ибо после попытки довести всё до ума, всё начинает работать. Для почты пришлось писать миниатюрный милтер, который отшибает явный спам не грузя CPU (чтобы разгрузить CPU уменьшив нагрузку от других милтеров).
Вопрос на засыпку почему мелкомягкие со всеми своими "супер-технологиями", мелкомягких ексченджем прочими вещами, которые вы так защищаете используют postfix (который в отличие от мелгомягких решений писан на Pure C)?
guest6 28.08.2023 23:43 # 0
пъянь 14.08.2009 12:52 # −1
Предлагаю вам начать писать свою супер оптимизированную жава машину например. выложить все на sourceforge и уже мы посмотрим тогда и поверим в вашу крутость...
xaionaro 14.08.2009 12:56 # 0
пъянь 14.08.2009 13:18 # −1
guest6 11.08.2024 17:56 # +1
пъянь 11.08.2024 18:13 # +1
guest6 11.08.2024 18:23 # 0
guest6 11.08.2024 20:27 # +1
guest6 28.08.2023 23:44 # +1
"с 1-го" это всмысле вы витую пару обжимаете?
ISO 11.08.2024 22:22 # 0
Зачем? Есть же «github».
guest6 11.08.2024 22:27 # 0
Чтобы пользователь пять минут смотрел рекламу, потом ждал 15 секунд "подготовки файла" (чтоб блядь это вообще такое??) и потом качал со скоростью 130 килобит в секунду
guest6 12.08.2024 01:22 # 0
Его же можно зарубить на корню, откинув GRE-пакеты.
РКН меня деформировал.
guest6 12.08.2024 01:26 # 0
guest6 12.08.2024 01:46 # 0
guest6 12.08.2024 02:00 # 0
KiTE 12.01.2010 20:31 # 0
Речь о кривой реализации вышеуказанного кода на C#, а не о самой платформе. И на Си можно неслабо наговнокодить. Для разных задач разноуровневые решения.
doomginho 13.08.2024 03:00 # 0
nil 06.02.2010 10:21 # 0
Dimarius 13.08.2009 22:49 # −1
3) От того, что Си более низкоуровневый, не значит, что программы на нём сразу станут быстрее. Скорость работы большинства программ ограничено скоростью операций ввода-вывода. И такты выполнения арифметики не решают.
P. S. Я пишу серьёзное ПО и на С++ и c#. И я предпочитаю c#, поскольку, как тут уже многократно сказано, на нём скорость разработки ПО выше, а это вытекает в зарплату. Я пишу на С++ только критические к скорости выполнения арифметики программы.
xaionaro 13.08.2009 22:55 # 0
3.) Скорость большенства программ зависит от того, насколько разумно они написаны, и чаще всего лично на моём Celeron 900MHz упор идёт совсем не в ввод-вывод. А на моём втором компьютере с 256МБайтами ОЗУ тоже вовсе не ввод-вывод.... увы..
Dimarius 13.08.2009 23:01 # +2
xaionaro 13.08.2009 23:03 # 0
Dimarius 13.08.2009 23:09 # −2
xaionaro 13.08.2009 23:22 # +1
2.) Не смотря на это, опыт программирования у меня есть, у меня есть собственные проекты, которые я пытаюсь поддерживать, а так же и на официальных подработках приходится программировать.
Меня вообще всегда бесило, когда люди вместо того чтобы вести дискуссию, начинают оскарблять, использовать тезисы вроде "все делают так, неужели ты думаешь себя умнее других" (аболютно бессмысленный тезис), "я делаю так, а я мега-крутой кодер" и т.п. Хотя самое противное, это когда начинают оскарблять из-за того, что не могут другим способом что-то доказать.
У меня отец программирует со времён перфолент (до того у них появились перфокарты ещё), и я не считаю, что я ему уступаю как программист для современных нужд (хотя его опыт бесценен и порядком больше моего). Это к тому, что то, что ты "крутишься в бизнесе" - не делает тебя лучше других. Компьютер у меня с рождения и я немало упражнялся.
Опять же повторюсь, я не считаю себя экспертом и прошу без перехода на личности
guest 14.08.2009 00:05 # +1
Nagg 14.08.2009 00:47 # −1
nil 06.02.2010 10:28 # 0
А если смотреть шире, то во все века во всех производственных процессах были мастера и ремесленники. У последних поделки были кривенькие, косенькие, но ведь работают!
Но потомки помнят все-таки мастеров...
xaionaro 14.08.2009 09:46 # +1
Я предлагаю не сидеть и оптимизировать круглые сутки, а _изначально_ писать нормально, притом более быстро (само написание кода), чем вышеуказанный кусок кода.
пъянь 14.08.2009 12:58 # 0
если вы не можете пережить наездов на ваши религиозные предрассудки в плане программирования то вам будет еще сложнее бабосики зарабатывать. тк поверьте сразу босом вы врядле станите и предется вам хуячить на том что начальство прикажет установить ту операционную систему и тулзу для ваяния кода кот вам купят ну и т.д.
так что не советую вам злоупотреблять выражениями типа я это не буду юзать т.к. она на с шарпе написано или от MS вы сразу будете посланы на хуй еще на собеседовании :)
xaionaro 14.08.2009 13:00 # 0
пъянь 14.08.2009 13:22 # 0
guest 04.09.2009 12:55 # 0
В конце-концов ресурс познавательный.
И я не понимаю, почему студент-физик отказывается от реальной пользы, которую несет C# для вашего брата. Судите сами, процесс разработки убыстряется, соответственно ваша задача решается намного быстрее. PROFIT!
xaionaro 13.08.2009 23:24 # −2
xaionaro 13.08.2009 23:27 # 0
Nagg 14.08.2009 00:45 # 0
xaionaro 14.08.2009 09:46 # 0
пъянь 14.08.2009 00:25 # 0
xaionaro 14.08.2009 09:48 # 0
И хватит оскарблять уже. Если не можете по-другому что-либо доказывать, то это очень плохой признак.
пъянь 14.08.2009 12:59 # 0
xaionaro 14.08.2009 13:01 # 0
пъянь 14.08.2009 13:34 # −1
xaionaro 15.08.2009 14:08 # +1
KiTE 12.01.2010 20:38 # 0
guest 29.10.2009 08:29 # 0
пъянь 29.10.2009 15:21 # 0
nil 06.02.2010 10:30 # 0
guest6 29.08.2023 22:51 # 0
РОССИЙСКО-АРМЯНСКИЙ УНИВЕРСИТЕТ?
«РАУ Айти» — Автоматизация учёта и бизнес-процессов?
guest 13.08.2009 23:36 # 0
ваш моск читает мои мысли
пъянь 14.08.2009 00:22 # 0
guest 14.08.2009 12:53 # +1
Ваш подход мне очень напоминает:
1.) подход попсы в музыке;
2.) подход microsoft, в момент, когда гигантами были всякие apple, ibm и прочие дяди.
Начнём с попсы, выпускают безвкусное говно для толпы, и людское стадо это глотает, а попсо-группы разживаются с почти пустого места. А есть группы, которые действительно сочинают новую интересную музыку, и многие из них тоже живут неплохо. Тот подход что вы все тут хотите мне впихать - это первое.
Продолжим Microsoft, которые пытались как можно быстрее выпустить своё ПО на рынок без особой отладки, лишь бы завоевать рынок, а далее уже всё неважно.
Да, в том и другом есть смысл, но это подход не для программиста, а для бизнесмена. Есть ведь толпа всяких людей, наподобие Тимо Сирайнен, которые пишут действительно хороший софт, и при этом материально живут очень даже не плохо. Вот этот человек - true программист. :)... А вы все тут опять же предлагаете быть как Microsoft.
Если кто-то, конечно, бездарен, и не способен писать как те люди, что написали всё то на чём держится почти любой сервис (как я уже говорил, даже для выдачи сайтов 95% кода работающего для этого - Pure C, а остальные сервисы не содержат и оставшихся 5%), что он пользуетесь, то конечно ему дорога "рисовать кнопочки и писать в них код подобный <Говнокод #1565> и не важно на каком языке, важно что за код будет с вашим подходом". Я не говорю, что кто-то тут бездарен, мне просто кажется, что Вам лень пытаться делать по-другому... Ну дело Ваше, это Ваше право, если Вам это помогает проще жить - пожалуйста. Просто по мне это далеко от искусства программирования, извиняюсь, за своё скромное мнение.
пъянь 14.08.2009 13:44 # 0
при написании такого кода моя задача затратить как можно меньше времени и написать код как можно понятнее
в примере метод private коментарий есть реализация очевидна любому кто на этот код смотрит. Да я согласен можно сделать эффективнее но если афтору придется потратить на это лишнее время то я против лучше пусть запустит профайлер и после этого уже оптимизирует...
пъянь 14.08.2009 13:47 # −2
да и я хочу чтобы микрософт пошел нахуй а я занял его место. И мне покласть на то какого качества будет мой код если он позволит эту цель реализавать!!!
guest6 28.08.2023 23:45 # +1
Слушайте, ну пора уже сделать апгрейд
ropuJIJIa 28.08.2023 23:51 # 0
guest6 28.08.2023 23:54 # 0
ropuJIJIa 28.08.2023 23:58 # 0
Я понимаю, что 256 метров даже для 2005-го было мало, но в 2009-м продавались компы (новые, не с помойки) с DDR2 объёмом менее гигабайта (да, с Socket 775) с предустановленной Вистой, так что современный на тот момент веб-браузер или MS Office хрустели свопом.
guest6 29.08.2023 01:19 # 0
Замена висты на семерку, а HDD на SSD в режиме ахцы, приводила к нереальному совершенно бусту, просто небо и землябля
ropuJIJIa 29.08.2023 02:24 # 0
guest 13.08.2009 23:14 # −1
guest 13.08.2009 23:59 # +1
однажды помню я рефлекшен юзал чтоб добраться до метода который был у моего соседа по работе. И делал это только потому что он был в отпуске, а в его код я лезть не хотел.
Если выложить сюда то тут бы всеб пиздец как изошлись бы что типа я из индустана и тп....
guest 06.02.2010 01:56 # 0
Dimarius 14.08.2009 06:30 # +1
guest 14.08.2009 08:48 # −2
guest6 28.08.2023 23:35 # 0
Вы ошибаетесь. Именно на Говнокоде обычно и сидят наиболее квалифицированные инженеры
ropuJIJIa 29.08.2023 00:00 # 0
guest6 29.08.2023 01:20 # +1
Tike 29.08.2023 01:52 # 0
guest6 29.08.2023 01:54 # 0
guest 14.08.2009 10:47 # 0
3) то что он быстрее в разработке на порядке не станете спорить, но вопрос о производительности ниже:
4) пока в коде вы ставити свои директивы #ifdef __amd64__, JiT-ер компилирует под любую архитектуру максимально использовав её преимущества (SSE1-4.2 и т.п) и разработчику не секунды не надо об этом заботится.
6) ваши подсчеты тактов и одновременно спор против высокоуровнего языка - нелепы
guest 14.08.2009 12:33 # 0
3.) Ну, если "туда плюнуть, туда плюнуть и бац! программа которая что-то делает" - это и есть "разработка", то да, спорить не буду;
4.) К сожелению, компиляторы не оборудованны интеллектом, и по-этому знают как оптимизировать с учётом архитектуры только некоторые вещи. Увы... компилятор не может знать, где позволяется что-то сделать, а где нет... Да и более того, на Си код можно писать и без всякого "#ifdef __amd64__" (это вообще крайне редко делают), а компилятор всё-равно будет использовать возможности SSE и т.п. :)
6.) Очень даже не нелепы. И я спорю не против самого языка, а против людей, что считают, что то, что написано выше - "нормально заисключением того, что digits надо определить статически"... Это НЕ нормально, это труд человека, который вообще не думает о том, что делает компьютер с его кодом, и никакой Ваш "JiT-ер" этого никак не исправит.
пъянь 14.08.2009 13:11 # −1
АХТУНГ АХТУНГ
надо просто запрещать думать на том уровне на каком вы предлагаете думать тем кто на с# програмит чтоб предотвратить появление говнокода в зародыше
doomginho 13.08.2024 03:01 # 0
Dimarius 14.08.2009 16:31 # +2
1. Идеология людей, связанных с c# ... Интересно. Все люди ложатся под одну гребёнку? Соглашусь, что это попсовый язык, и народ переходит на него с делфи, джавы или бейсика, но это не означает, что там нет грамотных людей, высококлассных профессионалов. Можно поподробнее про идеологию? Есть ссылка, где можно об этом почитать?
4. Ты говоришь о потенциальной возможности человека превзойти компилятор в оптимизации, но над оптимизатором работают профессионалы, которые учитывают большинство встречающихся ситуаций. А программист станет ли писать лучше? .NET фреймворк написан на низкоуровневых языках, а большинство (моего) кода на c# - это обращение к библиотечным классам и методам. Большинство всех тормозов в программе связано с не правильными архитектурными решениями и алгоритмами, и лишь отдальные проценты - с конкретными методами, которые отлавливаются профайлерами и оптимизируются.
6. Данный код действительно ужасен, в нём много проблем, но это не проблемы языка. То же самое пишут и на си.
Здесь же отвечу на вопрос про GC. Действительно, из-за сборщика мусора в памяти может находиться немного лишних данных. Но это единственный его недостаток. Среди достоинств:
1) Отсутствие утечек памяти
2) Выделение памяти под новые объекты происходит мгновенно без обращений к ядру ОС.
3) Освобождение памяти происходит в моменты более низкой загрузки ЦП.
Таким образом, некоторый кусок кода на си, выделяющий много мелких кусоков памяти под временные объекты и освобождающий её, будет работать намного медленнее такого же куска кода на c#, где память соберётся вся сразу и чуть попозже.
P. S. Я пишу серверное ПО для Центра Управления Полётами на c#. Нет там проблем с производительностью.
Предлагаю игру. Походите по сайтам крупных российских и зарубежных компаний и посмотрите, на чём они написаны. Там очень часто встречается ASP.NET, JSP, Flex.
пъянь 15.08.2009 07:47 # −1
студент должен пойти и убица ап стену
xaionaro 15.08.2009 15:19 # +2
xaionaro 15.08.2009 15:20 # 0
пъянь 15.08.2009 15:39 # −1
doomginho 13.08.2024 03:01 # 0
xaionaro 15.08.2009 15:14 # +1
1.) Я извиняюсь за стереотип, это изначально некорректно с моей стороны. Проблема в том, что я привык видеть, что у людей пишуших на C#, код указ
анный выше является нормальным, и многие так до сих пор и считают, просто из-за своей безграмотности. Я думаю моя позицая давно ясна и не требует
дополнительных комментариев. Ещё раз извиняюсь за стереотип.
4.) Приведу простой пример. У меня была надобность реализовать крайне шустро работающую сетевую утилиту, основной нагрузкой которой являлась обра
ботка длинных строк. Дак вот я написал на asm клоны многих libc-шных функций. Суть в том, что в стандартном freebsd-шном libc та же функция bcmp(
) сравнивает строки по-байтно, когда на 32-битном процессоре это можно делать сразу по 4 байта, после чего можно по-байтно проверить "хвосты". Вы
тоге, некоторые операции в утилите стали выполнятся раза в 2 быстрее и никакой компилятор не может догадаться, где так можно делать, а где не сто
ит... увы.. для этого надо обладать интеллектом. И большенство именно сильных оптимизаций (которые ускоряют на значительные проценты), требуют ин
теллекта.
6.) Я более чем согласен, что на Си тоже бывает полно говнокода. Например тот же (i/2 == i - i/2), ведь каждая операция деления занимает нескольк
о десятков тактов на современных CPU, когда "&1" занимает всего один такт. Т.е. (i/2 == i - i/2) работает раз в 50 медленнее. Хотя это, конечно,
не важно, если этот код используется редко, но мне всё-равно было бы за такое стыдно :). Т.е. я более чем согласен, что главное - руки, а только
потом инструмент. Более того, Си в руках плохого программиста, ИХМО, порядком ужаснее, чем язык более высокого уровня (хотя с другой стороны хорошо, хоть учится начиная снизу).
А утечки памяти обычно элементарно решаются valgrind.
xaionaro 15.08.2009 15:15 # 0
пъянь 15.08.2009 15:57 # 0
с точки зрения говнокода метод не отличается сильной говнистостью т.к.
1. Понятный
2. Короткий
3. Закоментирован
и даже с точки зрения ресурсов я бы не сказал что метод уж очень ужасный
pushkoff 22.10.2009 11:40 # 0
если человек не смог нормально написать этот метод, то я представляю что он напишет в более сложных задачах, и инструмент тут не причем, все дело в квалификации тех кто пишет и тех кто проверяет... ну и еще факто, что разработчик набрал в 11 раз больше строк, чем должен был, то есть работодатель потратил в 11 раз больше средств и в 11 раз больше времени... вот вам и все преимущества С#...
пъянь 22.10.2009 12:04 # 0
вы не допускаете что логика могла быть более сложная в том методе???
есть уже char.IsDigit()
нахуй он ваще писал этот метод по вашей логике он сыкономил в 11/0 больше времени и теперь должен работать за еду пожизнено...
pushkoff 22.10.2009 13:57 # 0
пъянь 22.10.2009 15:36 # 0
так и будете вечно оптимизировать и задрачивать свой калькулятор и показывать всем свой мега крутой код когда менее задротистые товарищи будут бобы лопатой грести не смотря на то что их код не идеален.
pushkoff 22.10.2009 15:58 # 0
те кто напишет с первой попытки код приведенный в первом посте должны быть сосланы на рудники, в не зависимости от опыта, зарплаты и страны проживания...
пъянь 22.10.2009 16:08 # 0
но тут видно стремление к лучшему...
так можно всех сослать на рудник... Останетесь в одиночестве только код не показывайте свой никому а то вас тоже отпраят на рудник.
pushkoff 22.10.2009 18:20 # 0
xaionaro 15.08.2009 15:18 # 0
guest 14.08.2009 12:19 # 0
А дотнет стало быть тоже на компе пользователя компилиться?
>За c#, а, точнее, технологией .NET будущее.
не верю
<offtop>
Вообще я не понимают смысл JIT компилятора - дотнет все равно ничего кроме винды не поддерживает. Очевидно, что
это всего лишь тупой клон джавы
</offtop>
>Ты предлагаешь тратить кучу памяти на массив
А сколько еще места тратиться под всякий хлам, ожидая GC?
пъянь 14.08.2009 13:13 # 0
по вашему? На чем вы собираетесь кодить после института?
xaionaro 15.08.2009 14:52 # 0
k06a 16.08.2009 23:56 # −2
пъянь 17.08.2009 00:49 # 0
guest 17.08.2009 01:13 # 0
Что смущает?
пъянь 17.08.2009 01:40 # 0
guest 17.08.2009 05:54 # 0
А для дотнета эта возможность как бы закрыта(есть вроде какая-то глючная опенсорсная поделка под названием mono).
Ещё сигнал/слот. В дотнете есть что-то подобное?
Dimarius 17.08.2009 11:22 # 0
В .NET это всё изначально красиво и органично. Я предпочитаю если и писать на С++, то на чистом.
пъянь 17.08.2009 12:34 # 0
Вообще я как то с трудом представляю как оно там компилируется для какогонить ебанутого железа.
k06a 18.08.2009 12:28 # 0
пъянь 18.08.2009 13:10 # 0
Desktop 28.08.2023 23:37 # +1
А для дотнета эта возможность как бы закрыта
– тем временем...
guest6 29.08.2023 01:26 # +1
Imagine, рассказать людям из последних лет XX века, что в топ десять контрибьютеров ядра Linux войдет MS, а десктопные приложения будут писать на JavaScript
guest6 28.08.2023 23:40 # 0
Да, разумеется. Почитайте про Attached Properties
guest6 28.08.2023 23:42 # 0
Вы ошибаетесь
guest6 28.08.2023 23:24 # 0
Это довольно общие слова. В среднем конечно плюсы позволяют писать более производительный код, но какой ценой?
> ряде случаев они будут наоборот быстрее, так как программа компилируется на компьютере пользователя, учитывая особенности его железа
Вы про JIT?
Обычно это решается отдельной сборкой нативного приложения под современные процессоры.
ropuJIJIa 28.08.2023 23:36 # 0
Это делает программа ngen или одноимённая служба. Служба в Винде работает отвратительно: если при компиляции возникла ошибка, она будет делать повторные попытки, засирая процессорное время бесполезной работой. Поэтому я её обычно отключаю и зову ngen вручную.
Кстати, ошибками она сыпет на свежеустановленной Винде. Т. е. свежеустановленная Винда уже сломана из коробки. И всем, как обычно.
guest6 28.08.2023 23:37 # 0
Пробуйте нортон вин доктор
ropuJIJIa 28.08.2023 23:47 # 0
Т. е. в Винде норма, что у половины экзешников и библиотек нету AOT-образов, и они выполняются на интерпретаторе, но адепты «.Net» будут продолжать твердить про «компиляцию на компьютере пользователя».
guest6 28.08.2023 23:34 # 0
Тогда вы понимаете вероятно, что даже такой глупый код нужно делать не через посредство контейнера в куче, а через const массив хотя-бы.
megaprogrammer001 13.08.2009 12:46 # 0
megaprogrammer001 13.08.2009 12:49 # 0
Nagg 13.08.2009 18:59 # 0
guest6 28.08.2023 23:37 # 0
bootcamp_dropout 29.08.2023 09:25 # 0
Desktop 29.08.2023 09:54 # 0
bootcamp_dropout 29.08.2023 10:30 # 0
Desktop 29.08.2023 10:46 # 0
guest6 29.08.2023 14:53 # 0
guest6 29.08.2023 14:54 # 0
Это почти как твой был, но только у тебя сенди, а у меня айви бридж
bootcamp_dropout 29.08.2023 16:11 # 0
guest6 29.08.2023 16:15 # 0
Под столом, вернее
А что?
Tike 29.08.2023 16:19 # 0
guest6 29.08.2023 16:30 # 0
Tike 29.08.2023 22:00 # 0
Tike 29.08.2023 16:19 # 0
guest 13.08.2009 13:58 # 0
Вот попробуйте на своём C# кодек написать, чтоб h264 720p без дропа кадров и с полным деблокингом смотреть на asus eeepc.
megaprogrammer001 13.08.2009 15:43 # +1
guest 13.08.2009 20:59 # 0
берите блять ЕС1840 и вперед на бейсике ебашите кодеки лет через 10 ченить получиться тока нах никому не нужно уже.
xaionaro 13.08.2009 22:05 # 0
guest 13.08.2009 22:39 # −1
xaionaro 13.08.2009 23:01 # +2
пъянь 14.08.2009 00:24 # −2
Nagg 13.08.2009 23:19 # +3
guest 13.08.2009 23:21 # 0
guest 13.08.2009 23:43 # 0
результат на SourceForge мы ждем! А то пиздаболить тут все горазды про реальные результаты а как надо реализовать ченить побыстрому так блять сидять день и ночь неделю там где 3 часа надо. мега оптимизаторы блять
xaionaro 14.08.2009 10:05 # 0
пъянь 14.08.2009 13:16 # 0
Иите изучать АСМ и будете писать нормально.
xaionaro 14.08.2009 13:17 # 0
Как вы сами говорите скорость разработки - очень важный факторов, поэтому конкретно asm используется крайне редко.
пъянь 14.08.2009 13:52 # 0
А ПУРЕ C я теперь не люблю ещё больше после такой информации :)
denis 20.09.2009 11:35 # 0
guest 15.08.2009 01:40 # +3
В конечном счете что писать и на чем решает бизнес и только бизнес. А бизнес видит следующие вещи :
За год стоимость каждого компьютера дешевеет по статистики в 2 раза. Мощности предоставляемые современным железом растет все больше и больше. С другой стороны большинство заказчиков на вопрос : "Когда вам нужен будет этот проект?" отвечают : "Вчера". В таких условиях скорость разработки является критической и в свете мощностей железа им становится абсолютно все равно будет ли проект выполнятся в несколько раз медленнее , чем на чистом си.
xaionaro 15.08.2009 14:09 # 0
denis 20.09.2009 11:35 # 0
guest 15.08.2009 01:40 # +7
Человеческий мозг к сожелению ограничен своей некчемностью :-D. Если вы пишете на си , то помимо главной задачи перед которой вы стоите вам приходится концентрироваться на разных побочных задачах. Поскльку вы человек , то вы будете совершать ошибки и каждая побочная задача помимо времени написания требует времени на отладку ( которое порой достигает 80 % от всей разработки). В конечном счете вы можете просто захлебнутся под весом этих побочных задач.
Кроме того вызывает сомнение качество решения побочных задач. Кто решит задачу лучше : тот для кого эта задача стоит главной или тот для кого эта задача является побочной? Понятно же, что тот для кого эта задача главная. С другой стороны проект даже маленького размера требует решения самых разных задач : взаимодействие с сетью, с базой данных, с пользователем, с файловой системой, вычисления и прочее прочее прочее. Вы уверены, что сможете освоить и освоить достатчно хорошо все эти темы, и написать для их решения свой код? Вообще по каждой области нужен свой дорогостоющий разработчик. В итоге это все дорого и еще сложнее в разработке , потому что надо еще налаживать взаимодействие между этими разработчиками.
А теперь представьте, что каждый из специалистов даст вам уже готовые свои решения. Да они будут обобщенными и работать будут медленнее, чем заточенные под ваши задачи, но эти решения уже есть и не надо тратить на них время.
guest 15.08.2009 01:41 # +7
То ПО , которое вы привели в качестве примеров на Си является фундоминтальным. Чем более фундамитальным является ПО , тем кретичнии для него время выполнения и именно поэтому необходимо выбирать си\asm или другие технологии , где скорость выполнения ставится во главе угла. Чем же выше уровень самого проекта ,тем менее важна скорость выполнения, а значит можно ей пожертвовать , чтобы облегчить жизнь программистов и кошелька бизнесменов.
Кроме всего прочего в конечном счете как правило хороший или плохой продукт выходит зависит не от платформы на которой проект разработан, а от того какими руками вы его разрабатывали. Если для решения задачи вы применяете алгоритм со сложностью O(n^3) вместо O(n) или копируете данные кадлый раз , вместо того , чтобы хранить их статично(как в сабже) , то вам ничего не поможет.
ЗЫ
За разработчиков стыдно. Столько хамства и мата...неприятно читать.
PSS
Писал в несколько сообщений т к больше 2000 символов нельзя ((
пъянь 15.08.2009 07:18 # −3
ну я конечно плюсанул поглядим что наш дорогой студент сможет возразить.
пъянь 15.08.2009 07:23 # −3
За разработчиков стыдно. Столько хамства и мата...неприятно читать.
Пусть прочувствует что его ждет в реальном мире после института :)
да и потом этож говнокод всеж
xaionaro 15.08.2009 14:26 # +1
Опять же повторюсь, я прекрасно понимаю позицию, за которую тут так усиленно многие держатся, я даже сказал ранее что она имеет смысл. Просто данный подход, как мне кажется, далёк от "искусства программирования" (извинясь за пафосные слова), а люди, сидящие тут отказываются понимать "почему".
И я рад, что тут есть хотя бы рассудительный человек. Вас хотя бы приятно читать. :)
Dimarius 15.08.2009 15:25 # 0
Предлагаю запостить следующий говнокод и поглумиться над ним :)
пъянь 15.08.2009 16:15 # 0
private static bool IsDigit(char symbol)
{
return ((symbol >= '0') && (symbol <= '9'));
}
пъянь 15.08.2009 16:19 # 0
gecko 15.08.2009 18:44 # +1
public static bool IsDigit(char c)
{
if (!IsLatin1(c))
{
return (CharUnicodeInfo.GetUnicodeCategory(c) == UnicodeCategory.DecimalDigitNumber);
}
return ((c >= '0') && (c <= '9'));
}
Dimarius 15.08.2009 17:53 # 0
пъянь 15.08.2009 22:45 # −1
Товарищ студент повернутый на оптимизации выдайте нам ваши предложения
а после мы выдвинем свои :)
пъянь 15.08.2009 22:49 # −1
private static bool IsDigit(char symbol)
{
return ((symbol >= '0') && (symbol <= '9'));
}
любители рефлектора говорят что это стандартный метод в .нет
Так предложите ваши идеи по оптимизации данного "стандартного" метода!
даем вам время до вторника :)
Все ждем товарища студента повернутого на оптимизации :)
pushkoff 22.10.2009 14:08 # 0
пъянь 22.10.2009 15:31 # 0
я же сказал что этот метод не оптимален.
pushkoff 22.10.2009 16:02 # 0
пъянь 17.08.2009 18:48 # −1
пъянь 18.08.2009 00:00 # 0
Мой вариант
private static bool IsDigit(char symbol)
{
return ((symbol <= '9') && (symbol >= '0'));
}
Думаю что мой вариант будет работать примерно в 2 раза быстрее чем у микрасовта :)
k06a 18.08.2009 03:01 # +1
никто случаем не подскажет, в данном случае с оптимизация работает только под отладчиком или нет?
пъянь 18.08.2009 12:10 # 0
+ умножить на затраты по выполнению
всегда только так!!! в простых случаях может и роли не сыграет большой но когда условие более сложное то оптимизация будет офигенная :)
k06a 18.08.2009 12:19 # 0
Такой вопрос, как будет асм код этого условия выглядеть? Там будет в середине условный переход лишний или как? Не терпится прийти домой и посмотреть)))
пъянь 18.08.2009 13:16 # −1
Тут это совершенно не нужно возможно процессор будет супер хитрой архитектуры и выполнять все условия одновременно а может и не будет :)
Тут главное сам подход к оптимизации сначала оптимизировать логику а уж потом реализацию
k06a 18.08.2009 15:48 # 0
movsx eax,byte ptr [a]
cmp eax,39h
jg isDigit+3Ch (4113BCh)
movsx ecx,byte ptr [a]
cmp ecx,30h
jl isDigit+3Ch (4113BCh)
Как и ожидал)) Лишний джамп в серединке.
пъянь 18.08.2009 16:08 # 0
gecko 18.08.2009 16:08 # 0
gecko 18.08.2009 16:12 # 0
guest6 11.08.2024 20:31 # 0
пъянь 18.08.2009 16:43 # 0
Dimarius 18.08.2009 17:04 # 0
guest 18.08.2009 18:14 # 0
denis 20.09.2009 11:40 # 0
guest6 29.08.2023 22:05 # 0
Desktop 29.08.2023 22:06 # +1
можно как-то неправильно обработать и за тобой начнут охотиться милые бородатые люди
guest6 29.08.2023 22:12 # 0
Гологуб тут носился со Sweden yes, так вот Denmark тоже yes
https://www.rbc.ru/rbcfreenews/64e8c7d29a7947dcd596e781
Desktop 29.08.2023 22:16 # +1
– но гологубы-то конечно выдрали только что-то одно™
хотя, безусловно, забавно, когда энциклопедию британника можно невозбранно пустить на самокрутки, а в какую-то поеботу, на которую бумаги нормальному человеку должно быть жалко, не дай бог плюнуть
guest6 29.08.2023 22:20 # +1
Вдумайтесь блядь: за зжигание куска бумаги предлагают давать два года. Мир ебанутый.
Desktop 29.08.2023 22:21 # +1
постмодернистское рабство
guest6 29.08.2023 22:24 # 0
Desktop 29.08.2023 22:26 # 0
guest6 29.08.2023 22:30 # 0
https://www.youtube.com/watch?v=d_Dk27-x_4Y
guest6 29.08.2023 22:42 # 0
Desktop 29.08.2023 22:43 # 0
подъёбывать граждан так, чтобы они думали, что это похвала
шарли ебдо каждый школьник-то может настругать
guest6 29.08.2023 22:46 # 0
ropuJIJIa 29.08.2023 22:33 # 0
Да, ошибиться при обработке цифр можно.
Арабы пишут числа в том же направлении, как мы, а остальной текст — в другом. Т. е. число 123 они начинают писать с тройки, а перед началом текста ставят символ RLM (right-to-left mark), так что число в итоге выводится, как и у нас, единица слева.
И в этих переключениях направлений (RLM, LRM) можно запутаться.
ropuJIJIa 29.08.2023 22:35 # 0
https://en.m.wikipedia.org/wiki/Arabic_letter_mark
guest6 29.08.2023 22:36 # 0
У нидерландцев и немцев порядок чисел не тот, что у русских и агличан.
"24" пишется как "четыре и двадцать"
Desktop 29.08.2023 22:38 # 0
как они сами ёбу не даются с таким))
ropuJIJIa 29.08.2023 23:29 # 0
Сирийцы и персы используют письмо, унаследовавшее все фичи и баги арабского. Буквы и цифры не совпадают с арабами, но все принципы те же.
Мусульмане Индии и Китая используют модифицированное арабское письмо.
У кого ещё сейчас rtl, я не вспомню.
guest6 29.08.2023 22:40 # 0
nemyx 08.07.2020 09:33 # 0
guest8 08.07.2020 10:10 # −999
nemyx 08.07.2020 10:22 # 0
guest6 11.08.2024 20:50 # 0
guest 14.08.2009 11:45 # −3
пъянь 14.08.2009 13:53 # 0
guest6 11.08.2024 20:50 # 0
guest 19.08.2009 00:27 # −4
guest6 11.08.2024 20:32 # 0
dulyahackana 20.08.2009 12:52 # −5
Я надеюсь, сегодня ни у кого нет сомнений, что тех, кто пытается учить программировать на Фортране, нужно изолировать от общества. Почему до сих пор у кого-то есть сомнения на счет тех, кто пытается учить программировать на C#?!!
C# напару с Джавой — это Фортран с Алголом, только чуть-чуть посовременнее!
Почему людей смущает запись
integer function f(n)
integer n,
но до сих пор не смущает public static void f(int n) или A a = new A()?
C# — это абсолютное говно в последней инстанции! (Джаву я для краткости буду опускать.) Хуже нет ничего. Все, что хуже, уже умерло. Когда в C# добавляют всякую фигню из динамических языков программирования, это мне напоминает добавление возможности объявлять рекурсивные функции в Фартране 90. Ура! в Фортране 90 появилась возможность писать
recursive function f(n) result (res)
integer n
integer res
dulyahackana 20.08.2009 12:52 # −5
Это должно писаться не длиннее, чем «(def f (n)» или «def f(n):», потому что смысла в этой конструкции ровно столько. В Перле все пишут $_ и прочие $что-то и ни один программист из-за этого еще не запутался. Короткие мысли должны выражаться коротко! Этим Перл хорош.
А C# — чертово убожество!
И это убожество у нас в институте, к примеру, используют не только студенты! Им-то как раз разрешается быть дураками, они в конце концов для того в институт и пришли, чтобы их научили ими не быть. Нет, ребята, не туда пришли! У нас большинство курсов базируется либо на Билдере (нет, не на C++, а на Билдере -- это оказывается есть такой язык, если кто-то не знает), либо на Visual Studio (тоже такой язык), либо у самых продвинутых на C#! Те, кто программирует на C# знают, что Фортран 77 используют только неудачники, а настоящие программисты пишут на Фортране 90! Ой, я имел в виду, C/C++ используют неудачники, настоящие программисты пишут на C#.
«Для создании больших, сложных приложений корпоративного уровня, подходит лучше всего C#.» Да! А для решения задач мат-моделирования и других «матерных» задач, лучше всего подходит Фортран! Везде, где «мат» или «числ», там Фортран. А для написания бухгалтерских приложений, луче всего подходит Кобол! А Питон — это вообще скриптовый язык.
dulyahackana 20.08.2009 12:52 # −2
Я, собственно, про F#-то ничего плохого не хочу сказать. Есть каналы — и хорошо, отлично даже. То, что чисто функциональный код хорошо параллелится — тоже хорошо (он правда и 30 лет назад хорошо параллелился). Я просто хочу сказать, что аудитории, где у большинства любимый язык C#, не нужно рассказывать про высокие материи: им скажи, что F в названии F# — это первая буква от Fortran и они будут готовы верить, что F# -- это мегаудобный язык для программирования приложений с «мат» и «числ».
P. S. Не все те, кто пишет на C#, плохие программисты, конечно. Но те, кто пишут на нем добровольно и с удовольствием, — точно. Они могут при этом быть хорошими людьми, но хорошими программистами быть не могут. А тех, кто пытается учить на C#, этих точно нужно изолировать.
пъянь 05.10.2009 14:20 # −2
inkanus-gray 04.06.2016 13:12 # 0
guest6 11.08.2024 20:32 # 0
KPblCA 11.08.2024 23:48 # 0
Dimarius 20.08.2009 13:10 # 0
Desktop 29.08.2023 22:17 # 0
guest 01.09.2009 01:28 # 0
Насчет самого кода: по-моему это просто калька с фсяких-там-скриптов типа ("1".."9").include?(symbol)
Чо всех так удивило то же самое в цэшарпе? :/
guest 06.05.2011 21:57 # 0
guest 06.05.2011 22:11 # 0
bugmenot 06.05.2011 22:41 # 0
скоро им .NOT окончательно мозги выест и их можно будет использовать как дешевую замену роботам-уборщикам
омич, дату-то видел?
guest6 28.08.2023 23:32 # 0
Desktop 29.08.2023 22:06 # 0
ropuJIJIa 29.08.2023 22:13 # +1
guest6 29.08.2023 16:37 # 0
https://twitter.com/kosa_media/status/1695054935128256839
Я давно это предсказывал
guest6 29.08.2023 22:44 # 0
guest6 11.08.2024 20:55 # 0
совместим удобство написания кода, скорость компиляции, и производительность в рантайме!
А?
Как идейка?
guest6 11.08.2024 20:54 # 0