[image]

Что, господа суровые С++ программисты, поспорим быстродействием с отстойной Джавой? ;)

 
1 5 6 7 8 9 29
UA Maverik #07.07.2008 22:31  @Сергей-4030#07.07.2008 22:28
+
-
edit
 

Maverik

новичок
Сергей-4030> То есть, хэш все-таки появился после представления Балансерова и моего вариантов? ;) Так, или не так?

Так. Однако, учим логику: "A после B" — это не обязательно "A в результате B". То, что тут нужно использовать хэши, было очевидно с самого начала.

Если бы я использовал решение на Яве, то я бы учел грабли с хэш-функцией. Так, или не так? ;-).
   
US Сергей-4030 #07.07.2008 22:32  @Maverik#07.07.2008 22:28
+
-
edit
 

Сергей-4030

исключающий третье
★★
Сергей-4030>> Читать больно уж тяжко. Тем более, экономятся-то на вызовах копейки, по большому счету.
Maverik> Ну, про "копейки" мы тут уже шестую страницу смотрим.

И что нового увидели? :)

Maverik> А "на вызовах" сам алгоритм поломаться может.

Это как?
   
UA Maverik #07.07.2008 22:34  @Сергей-4030#07.07.2008 22:32
+
-
edit
 

Maverik

новичок
Maverik>> Ну, про "копейки" мы тут уже шестую страницу смотрим.
Сергей-4030> И что нового увидели? :)

А ничо. Профиля нет, поэтому типические предсказания "из астрала".

Maverik>> А "на вызовах" сам алгоритм поломаться может.
Сергей-4030> Это как?

Как Вы думаете, goto там для красоты используется?
   
US Сергей-4030 #07.07.2008 22:41  @Maverik#07.07.2008 22:34
+
-
edit
 

Сергей-4030

исключающий третье
★★
Maverik>>> Ну, про "копейки" мы тут уже шестую страницу смотрим.
Сергей-4030>> И что нового увидели? :)
Maverik> А ничо. Профиля нет, поэтому типические предсказания "из астрала".

Что значит - нет? Оценить "стоимость" вызова против перехода по goto - не проблема, правда?

Maverik>>> А "на вызовах" сам алгоритм поломаться может.
Сергей-4030>> Это как?
Maverik> Как Вы думаете, goto там для красоты используется?

Нет, конечно. С goto никакой красоты ожидать не приходится. ;) Но в цикл преобразовать, без спагетти - не проблема ведь, правда?
   
US Сергей-4030 #07.07.2008 22:45  @Maverik#07.07.2008 22:31
+
-
edit
 

Сергей-4030

исключающий третье
★★
Сергей-4030>> То есть, хэш все-таки появился после представления Балансерова и моего вариантов? ;) Так, или не так?
Maverik> Так. Однако, учим логику: "A после B" — это не обязательно "A в результате B". То, что тут нужно использовать хэши, было очевидно с самого начала.

Но вы же сами сказали, что позже хэш приписали. Значит "с самого начала" было не так уж и очевидно?

Maverik> Если бы я использовал решение на Яве, то я бы учел грабли с хэш-функцией. Так, или не так? ;-).

Неизвестно это мне. У вас структура данных получилась хуже (массив из 16 байт) ;) Поэтому я и не знаю, в чем причина такого неоптимального использования хэша.
   
+
-
edit
 

Balancer

администратор
★★★★★
Maverik> Черт, code не работает. Как отформатировать?

Исправил.
   
RU anonymous_lor #08.07.2008 07:41  @Сергей-4030#07.07.2008 22:07
+
-
edit
 

anonymous_lor

новичок

Сергей-4030> Что и ожидалось. ;) Ну, еще можно заключить, что код на С++ был получен через 6 месяцев после кода на Java и при этом только после того, как этот самый текст на Java был опубликован (т.е. "чисто" сишное решение так и не было представлено). ;)


а что значит "чисто" С-шное решение ? ... в предложенных решениях на С/С++ никакие другие языки не используются, только С или С++ ... при этом больше всего на ява код смахивает мой вариант, собственно я сразу сказал что переписываю с явы, потому что иначе думать надо ... два другие варианта вообще на ява код не похожи ...
насчет 6-ти месяцев ... ну чтож, надо было раньше на ЛОР-е опубликовать наверно :) ...
   
RU Balancer #08.07.2008 07:48  @anonymous_lor#08.07.2008 07:41
+
-
edit
 

Balancer

администратор
★★★★★
anonymous_lor> насчет 6-ти месяцев ... ну чтож, надо было раньше на ЛОР-е опубликовать наверно :) ...

Публиковал раза два :)
   
US Сергей-4030 #11.07.2008 07:51
+
-
edit
 

Сергей-4030

исключающий третье
★★
Поправил схему нитей - получил результат в 103 секунды. Насколько я понимаю, даже не в разы от Сишного решения. ;)
   
RU anonymous_lor #15.07.2008 16:43
+
-
edit
 

anonymous_lor

новичок

осилил таки многопоточную реализацию, 68 секунд на c2d 2,6 ... что интересно на компьютере с двумя четырехядерными процессорами xeon 2,4 ровно также, видимо больше времени на синхронизацию тратится ... алгоритм плохой ...
   
RU anonymous_lor #15.07.2008 16:44
+
-
edit
 
US Сергей-4030 #15.07.2008 16:46  @anonymous_lor#15.07.2008 16:43
+
-
edit
 

Сергей-4030

исключающий третье
★★
anonymous_lor> осилил таки многопоточную реализацию, 68 секунд на c2d 2,6 ... что интересно на компьютере с двумя четырехядерными процессорами xeon 2,4 ровно также, видимо больше времени на синхронизацию тратится ... алгоритм плохой ...

А вот у Джавы все хорошо. ;) У меня теперь на двух ядрах примерно в 1.8(!) раза быстрее. Т.е. если ядер будет четыре, знаменитый C++ будет в пролете? :) Poor baby...

PS Еще одна иллюстрация получается. То есть наверняка можно на C++ сделать быстрее код. Но делать это придется долго. И малопереносимо.
   
RU anonymous_lor #16.07.2008 16:59
+
-
edit
 

anonymous_lor

новичок

Страница не найдена — PasteBin

Pastebin помогаем работать и общаться: скопировал, вставил, отправил

// www.pastebin.ru
 


чуть уменьшил синхронизацию, воспользовавшись идеей взятой из текста программы тов. vsb, плюс убрал рекурсию ...

c2d 2,6 - 63 секунды
xeon 2.6 четырехядерный - 49 секунд
2 x xeon 2.4 четырехядерные - 29 секунл

насчет переносимости - собственно делал я свою программу на виндовсе, но думаю что с компиляцией её в линуксе будет даже меньше приседаний, т.к. библиотека pthreads там уже скорей всего установлена будет ...
   
RU anonymous_lor #16.07.2008 17:00
+
-
edit
 

anonymous_lor

новичок

ссылка неправильная, лучше вот Pastebin.com Unknown Paste ID
   
RU Nikita #17.07.2008 18:17  @Сергей-4030#15.07.2008 16:46
+
-
edit
 

Nikita

аксакал

Сергей-4030> PS Еще одна иллюстрация получается. То есть наверняка можно на C++ сделать быстрее код. Но делать это придется долго. И малопереносимо.

Не соглашусь с Вами, уважаемый Сергей-4030.

1. Однопоточное приложение

Ваш Java-код портированный на С++ выглядит практически идентично оригиналу, и вовсе не требует какого-то особого поворота мозга для понимания и написания :)

2. Многопоточное приложение

В зависимости от используемой библиотеки поддержки многопоточности, "распиливание" исполнения Solution.arrange() может выглядеть, с точки зрения Java, несколько экзотично (я вот лично OpenMP воспользовался), а может и ровно так же (ежели взять что-то чуть более традиционное).

3. Переносимость

Сие первородный грех С++, увы... Однако с поддержкой обычных массовых платформ никаких особых заморочек нет.

Итого:

Проблемы плохого дизайна многих С++ приложений/библиотек кроются в необразованности и безграмотности их разработчиков, а не в языке. Никаких преград для того чтобы писать на С++ в стиле той же Java и со всеми соответствующими бенефитами не существует.
   
US Сергей-4030 #17.07.2008 18:54  @Nikita#17.07.2008 18:17
+
-
edit
 

Сергей-4030

исключающий третье
★★
Nikita> Итого:
Nikita> Проблемы плохого дизайна многих С++ приложений/библиотек кроются в необразованности и безграмотности их разработчиков, а не в языке. Никаких преград для того чтобы писать на С++ в стиле той же Java и со всеми соответствующими бенефитами не существует.

Теоретически - да. Но теоретически с теми же бенефитами можно писать и на ассемблере. На практике же много более удобная работа с нитями, более строгий язык, переносимость, отсутствие средств затуманивания мозгов ака переопределение операторов и наконец - механизм сборки мусора делают платформу Java более пригодной для больших и сложных проектов. На мой взгляд, даже этот топик есть иллюстрация, ибо вариант на C++ появился через полгода после варианта на Java. То есть, конечно, этот эксперимент не слишком чистый, но на безрыбье и рак - колбаса.

PS Я так думаю. :)
   
RU anonymous_lor #17.07.2008 21:27  @Nikita#17.07.2008 18:17
+
-
edit
 

anonymous_lor

новичок

Nikita> 3. Переносимость
Nikita> Сие первородный грех С++, увы... Однако с поддержкой обычных массовых платформ никаких особых заморочек нет.

что-то мне кажется что тот же gcc работает уж всяко на не меньшем количетве платформ чем java ...

Nikita> Проблемы плохого дизайна многих С++ приложений/библиотек кроются в необразованности и безграмотности их разработчиков, а не в языке.

стопудова ... вместо С++ монжо впрочем вообще любой язык поставить ...

Nikita> Никаких преград для того чтобы писать на С++ в стиле той же Java и со всеми соответствующими бенефитами не существует.

вот не надо на С++ писать в стиле java ... не надо ... ничего хорошего из этого не выйдет ...
   
US Сергей-4030 #17.07.2008 21:30  @anonymous_lor#17.07.2008 21:27
+
-
edit
 

Сергей-4030

исключающий третье
★★
Nikita>> Никаких преград для того чтобы писать на С++ в стиле той же Java и со всеми соответствующими бенефитами не существует.
anonymous_lor> вот не надо на С++ писать в стиле java ... не надо ... ничего хорошего из этого не выйдет ...

А вы чем и какое время занимаетесь? И какое учебное заведение закончили? Я не пытаюсь вас поддеть, это просто для информации, дабы лучше понимать друг друга.
   
RU anonymous_lor #17.07.2008 21:31  @Сергей-4030#17.07.2008 18:54
+
-
edit
 

anonymous_lor

новичок

Сергей-4030> отсутствие средств затуманивания мозгов

вот уж где где а в яве этих самых средств затуманивания мозгов хоть отбавляй ...

Сергей-4030> и наконец - механизм сборки мусора делают платформу Java более пригодной для больших и сложных проектов.

Ынтерпрайз одним словом ... ну-ну ...

Сергей-4030> На мой взгляд, даже этот топик есть иллюстрация, ибо вариант на C++ появился через полгода после варианта на Java.

иллюстрацией чего ? ... что людям было лень тратить твое время на доказательство кому-то очевидных фактов непонятно зачем ...
   
US Сергей-4030 #17.07.2008 21:32  @anonymous_lor#17.07.2008 21:31
+
-
edit
 

Сергей-4030

исключающий третье
★★
Сергей-4030>> отсутствие средств затуманивания мозгов
anonymous_lor> вот уж где где а в яве этих самых средств затуманивания мозгов хоть отбавляй ...

А вы принимали участие в проектах на Java?
   
US Сергей-4030 #17.07.2008 21:33  @anonymous_lor#17.07.2008 21:31
+
-
edit
 

Сергей-4030

исключающий третье
★★
anonymous_lor> иллюстрацией чего ? ... что людям было лень тратить твое время на доказательство кому-то очевидных фактов непонятно зачем ...

Факты - это дело субъективное. Вам одно очевидно, а мне - другое.
   
US Сергей-4030 #17.07.2008 21:36  @anonymous_lor#17.07.2008 21:31
+
-
edit
 

Сергей-4030

исключающий третье
★★
anonymous_lor> Ынтерпрайз одним словом ... ну-ну ...

Именно. А почему такое пренебрежение? Enterprise системы - это квинтэссенция программирования, там применяются самые что ни есть прогрессивные методы - ибо по иному такие системы просто не сделать. А вам больше нравится Hello, World?
   
RU anonymous_lor #17.07.2008 21:38  @Сергей-4030#17.07.2008 21:30
+
-
edit
 

anonymous_lor

новичок

Сергей-4030> А вы чем и какое время занимаетесь? И какое учебное заведение закончили? Я не пытаюсь вас поддеть, это просто для информации, дабы лучше понимать друг друга.

занимаюсь программированием, лет 8 уже наверно, на С++ ... на чистом С кстати довольно мало программировал ... закончил технический ВУЗ (не Московский) по специальности инженер-программист ...
   
US Сергей-4030 #17.07.2008 21:39  @anonymous_lor#17.07.2008 21:38
+
-
edit
 

Сергей-4030

исключающий третье
★★
Сергей-4030>> А вы чем и какое время занимаетесь? И какое учебное заведение закончили? Я не пытаюсь вас поддеть, это просто для информации, дабы лучше понимать друг друга.
anonymous_lor> занимаюсь программированием, лет 8 уже наверно, на С++ ... на чистом С кстати довольно мало программировал ... закончил технический ВУЗ (не Московский) по специальности инженер-программист ...

А когда закончили ВУЗ?

PS Я тоже не московский закончил. Есть разница? ;)
   
RU anonymous_lor #17.07.2008 21:39  @Сергей-4030#17.07.2008 21:32
+
-
edit
 

anonymous_lor

новичок

Сергей-4030> А вы принимали участие в проектах на Java?

нет ... ну так, пару раз писал небольшие программы строчек по двадцать, но это не проект ...
   
1 5 6 7 8 9 29

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru