![]() |
Модераторы: LSD Страницы: (144) « Первая ... 75 76 [77] 78 79 ... Последняя »
( Перейти к первому непрочитанному сообщению ) |
![]() ![]() ![]() |
|
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
Вот ты бы и не смешил. Про это поделку на дельфях никто кроме тебя не слышал, а вот майнкрафт знают все. Плюс на Яве есть куча серверов для онлайн игр, сможешь хоть один на этих ваших дельфях назвать? -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Beltar |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: 2 Всего: 7 |
Сервера может быть, тормознутость Явы там преодолеть можно железом. А насчет десктопа и в частности клиентов для этих сетевых игр, то плюсам альтернативы к сожалению нет.
Это можно сделать и в Си-подобном языке, однако специфика там требовала, чтобы и через 20 лет код оставался читаемым. Си-подобные языки нечитаемы в принипе. В долгосрочной перспективе они обречены.
Все, я понял, в чем дело. Просто ты не мог на Паскале даже лабы в школе\инсте написать, отсюда и вера, что Паскаль якобы мертв. Не Visual Basic, ни FoxPro, ни еще какая-нибудь хрень поддержка которой прекращена, ни Фортран на котором пишут сотня человек в НИИ, а именно Паскаль. Знаешь сходи в то же сообщество Лазаруса и скажи им, что Паскаль мертв. Уже лет 10 как мертв, и пофигу, что только под нативную разработку 2 компилятора с IDE, Корвин сказал мертв, значит мертв. Delphi многих сделала программистами - отплатили ей за это ненавистью.
Да что вы говорите? Это как на жестком диске дефрагментацию провести, сначала день гонять, а только потом выигрыш. То, что GC ресурсоемкая штука это в общем-то и так понятно и все тесты этой вашей жабы по сравнению с плюсами, или чем-то еще фуфло, потому что строятся так, чтобы GC не запустился. Далее, фрагментации памяти можно избежать разными способами, самый простой для Delphi, да и любого сходного ЯП, просто сложить данные в виде структур в массив. Про свой менеджер памяти не говорю, это сложнее, но можно. Т. е. прежде чем наезжать на методики, которые поди со времен Фортрана существуют ознакомился бы с элементарными решениями на их базе и задался вопросом, какие накладные расходы приходится нести на организацию этой самой нефрагментированной памяти. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. ![]() Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
||||||
|
|||||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
Оставь эти сказки для тех у кого дельфи головного мозга. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
k0rvin |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Твой libastral барахлит, перепеши его на паскале. Лабы я делал успешно и не только себе. =)
Пофикшено.
Нет, не так. Да ну? Каким образом "массив структур" поможет избежать фрагментации памяти? Или делфисты принципиально выделяют память под все объекты сразу при старте программы, а во время ее работы ничего не освобождают? Ну-ну...
GC не намного младше фортрана так-то. На каких-то 2 года (примерно).
Некрофилов нельзя переубедить. Это сообщение отредактировал(а) k0rvin - 26.4.2013, 13:02 -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||||||
|
|||||||||
Beltar |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: 2 Всего: 7 |
Когда программа работает в сферическом вакууме, то конечно, там ничего оптимизировать нельзя. По определению. А вот в реальности объем данных на конкретной задаче предсказуем. Например, для пресловутой игры на жаба-сервере число соединений 99% случаев будет задано сразу при запуске сервера, исходя из его возможностей, и если это число будет превышено, то желающему поиграть ничего не останется, кроме как ждать освобождения, но, по крайней мере, подключившиеся раньше получат гарантированный уровень сервиса.
Вообще вызывает удивление вера людей в то, что GC, который понятия не имеет об особенностях реализации программы и может только ходить рекурсивно по ссылкам, сможет обеспечить организацию памяти эффективнее программиста, который точно знает какой именно пул ему надо. В общем джавизм головного мозга на лицо. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. ![]() Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
|||
|
||||
Athari |
|
||||||||||||||||
![]() Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 27.6.2007 Где: Казань, Россия Репутация: 1 Всего: 1 |
Игры на джаве: Minecraft, IL-2 Sturmovik, Runescape, PoxNora и куча других, менее известных. Только не говори, что ни про одну из них никогда не слышал. ![]()
Ага. С 1966-го обречены и до сих пор обречены, несмотря на очевидное доминирующее положение во всей индустрии на протяжении полувека. Факты, факты где?
VB активно поддерживает МС, не мёртв ни разу. VB6 мёртв. ФоксПро -- мёртв. Есть, конечно, некрофилы, как и у дельфи, но это не считается. Фортран -- для маргиналов. Нет, паскаль далеко не единственный не выжил. И да, идея, что паскаль -- идеальный язык для изучения программирования, похоже, жива только на просторах бывшего сысысыры.
Давай угадаю: будет такой же цирк, как сейчас с дельфи и тобой? Нет, спасибо.
Какая ненависть? Король умер, да здравствует король!
В большинстве приложений работа GC занимает не больше 10% времени. Обычно меньше 5%. Если взять шарп с его передовым GC и оптимизациями ради выделения на стеке (здесь джава в роли догоняющей), то некоторые алгоритмы с GC ускоряются относительно традиционных new/delete (вместе со сборкой мусора). И у выделения и удаления памяти в дельфи/плюсах цена совсем не нулевая.
Фрагментация -- это не когда два мелких объекта лежат отдельно, а когда после активного создания и удаления объектов у тебя вся память в "дырках", и большой кусок выделять негде. Как тебе поможет массив? В нём же тоже придётся удалять объекты посередине. А если начнёшь упаковывать массив (удалять все null), то у тебя сломаются ссылки на объекты.
Факт: ты никогда в жизни не напишешь менеджер памяти, который решит проблему фрагментации. Мы обсуждаем реальность, а не ненаучную фантастику. |
||||||||||||||||
|
|||||||||||||||||
k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
О да, уже упоминавшиеся мной Access Violation'ы в Делфи показательны, а уж если попробовать поработать с BDE, то и до "Insufficient memory for this operation" можно добраться. =) -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
Guinness |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 310 Регистрация: 21.6.2009 Где: Зеленоград Репутация: нет Всего: 10 |
Слышал про первые две, третья вызывает сомнения, вроде что-то знакомое, но не уверен. Самое интересное, что ни в какую из них не играл. Игры на Java у меня стойко ассоциируются с мобильными устройствами. Кстати, а почему ведущие разработчики компьютерных игр не используют Java или C#? Или я просто не осведомлен об этом? К слову, Blizzard нанимает программистов для разработки игр исключительно со знанием C/C++ + какие-либо скриптовые языки. Даже для написания серверной части (ради интереса сегодня зашел к ним в вакансии), для которой вроде как уже много лет рекламируют Java. Это сообщение отредактировал(а) Guinness - 26.4.2013, 15:37 |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
![]() 1. Аллокация и освобождение памяти работают независимо от типа объекта. Для этого никаких знаний о внутреннем устройстве объекта не нужно. 2. Сборщик мусора не ошибается в отличие от программиста. 3. Я уже говорил что выделение/освобождение памяти всегда не бесплатная и непредсказуемая по времени операция.
Да ну! Померяемся? -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Athari |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 27.6.2007 Где: Казань, Россия Репутация: 1 Всего: 1 |
@Guinness
Плюсы позволяют оптимизировать код так, как в принципе недоступно для managed языков со сборкой мусора. Увеличение производительности на 10% будет стоить на 100% дороже, но это часто оправдано. Ниже и хардкорнее -- только ассемблер. Плюсы имеют огромный багаж написанного на них кода. Причём это тянется ещё с доминирования си, с которым плюсы более-менее совместимы. Здесь и коммерческие библиотеки всех производителей, и опенсорс, и собственные наработки корпораций. С этим никто не хочет расставаться. Плюсы и си -- "родные" языки для практически всех осей. Никогда не возникает потребности писать "обёртки", на плюсах всегда доступны все средства осей. Из-за доминирующего положения плюсов (до появления джавы и дотнетов, так вообще тотального доминирования) для плюсов создано такое количество инструментов, что ни одному другому языку не снилось. В общем и целом: если что-то есть, оно есть на плюсах; если что-то оптимизировать до каждого бита, то лучше всего на си/плюсах; огромный багаж кода. Для разработчиков ААА-игр эти параметры более критичны, чем скорость разработки, чем дешевизна разработки с нуля. Добавлено через 5 минут и 53 секунды @LSD
Жаба vs шарп шоль? Ну так после появления дотнета жабу допиливали активно. Выделение в стеке какое-то неявное даже сделали для определённых случаев. ![]() Предлагаешь погонять синтетические тесты или как? |
|||
|
||||
SKrivosein |
|
|||
![]() Идущий в даль ![]() ![]() Профиль Группа: Участник Сообщений: 271 Регистрация: 9.6.2007 Где: Praha - Прага Репутация: нет Всего: 8 |
Beltar чёткий у тебя знакомый А, четкий....
Жалко только что пообещал уйти с Винграда ![]() |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
Ну да, только без явного выделения в стеке. Аллоцируем в куче смотрим на перфоманс, на время GC. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Athari |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 27.6.2007 Где: Казань, Россия Репутация: 1 Всего: 1 |
@LSD
Во-первых, я не умею замерять производительность сборки мусора. По-моему, Stopwatch вокруг GC.Collect() не прокатит (возможно, прокатит с серверным GC, который не многопоточный, но не уверен). Во-вторых, тест на сборку мусора -- слишком синтетический даже для синтетического теста. Он будет тестировать сборку мусора очень однобоко, полностью игнорируя разные возможности сборщика мусора типа поколений, многопоточности и прочего. В-третьих, тест на сборку в куче полностью проигнорирует такую фишку шарпа, как выделение структур в стеке, не говоря уж о недостатках джавы в виде обязательного боксинга в коллекциях-дженериках и т.п. Это ключевые отличия, про которые я и говорил выше. Например, я могу сделать, чтобы список с сотней элементов выделился одним блоком. Или вообще весь массив выделился в стеке. В джаве будет 101 выделение памяти. Где будет быстрее сборка мусора? ![]() |
|||
|
||||
Beltar |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 627 Регистрация: 11.1.2006 Репутация: 2 Всего: 7 |
Для тебя это будет шоком, но если бы ты вышел из своего .NET болотца, то узнал бы, что Fortran как использовался для матана, так и используется, и любая серьезная фирма компилятор Фортрана имеет.
Да, бог нас миловал от засилия Бейсика. В итоге что получили-то? Жабу, которая для обучения мало\непригодна? Кстати, попалось интервью свежее с сотрудником Абрыкадабры, по их сведениям в России 71% преподавателей имеют дело с BP или Delphi, при этом вопреки расхожему мнению, учебные заведения как закупали инструменты со скидкой в 90%, так и закупают. Правда наша российская дурость в том, что закупки теперь перенесли на местный уровень. Впрочем о таких вещах искренне верующим в то, что Паскаль мертв лучше не знать, а то у них начнется бессоница, и не задумываться над тем, почему вообще Абракадабра связалась с CodeGear, и на какие шиши она, не имеющая иных доходов, кроме продажи ПО, выплачивает своим работникам зарплату.
Потому что плюсы рвут этот GC хлам в клочья. Очевидно же, что GC создан с одной целью, сделать так, чтобы сервер не упал из-за утечек. А когда ты ожидаешь, что игрушка тебе не меньше 40 мгновенного fps будет держать, то будет очень неприятно, если вместо обсчета того, что нужно, игра будет бегать по ссылкам. Утечки же в играх и на десктопе вообще куда менее опасны. Я бы даже сказал, что утечки это фигня, опасны труднодиагностируемые баги при прямой работе с памятью. Кстати, у жабы с этим, насколько я понимаю, вообще никак.
Да конечно, скажи увеличение производительности на 100%. А величины в 5-15% это можно незначительным понижением качества графики достичь. Добавлено через 2 минуты и 1 секунду 2 SKrivosein Так зафренди его, может найдете еще о чем пообщаться. Только учитывай, у него скилл выедания мозга и зловредности прокачен выше 9000. ![]() -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. ![]() Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере. |
||||||||
|
|||||||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 9 Всего: 538 |
А че у вас донейтах нету профилировщиков GC? Тут достаточно простейшего GC log. Как будто нельзя и это добавить в тест. Это уже ручное управление памятью. Это конечно хорошо что оно есть, ты говорил про "передовой GC" а он к выделению на стеке никоим боком не относится. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
![]() ![]() ![]() |
Правила ведения Религиозных войн | |
|
1. Уважайте собеседника 2. Собеседник != враг 3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez" С уважением, Smartov. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Религиозные войны | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |