The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Анализ популярности языков программирования в 2010 году, opennews (ok), 11-Янв-11, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


29. "Анализ популярности языков программирования в 2010 году"  +/
Сообщение от Аноним (-), 11-Янв-11, 07:18 
косяков в этом коде не вижу.
Ответить | Правка | Наверх | Cообщить модератору

30. "Анализ популярности языков программирования в 2010 году"  +3 +/
Сообщение от Damon_ (ok), 11-Янв-11, 07:50 
При передаче управления в f1, для обоих параметров будет вызван конструктор копирования. Если класс A тривиальный, не проблема, а если нет -- лишние затраты на создание копии.

А еще, дополнительный источник тормозов -- чрезмерное использование виртуальных методов. При передаче управления виртуальному методу, надо прочитать указатель на метод из VTable, после перейти по нему. В этом смысле, шаблоны и подход осуществленный в STL рулят, т.к. минимизируют количество виртуальных методов.

Ответить | Правка | Наверх | Cообщить модератору

32. "Анализ популярности языков программирования в 2010 году"  +/
Сообщение от Аноним (-), 11-Янв-11, 08:19 
Уже интересно. А как тогда правильно?
Ответить | Правка | Наверх | Cообщить модератору

33. "Анализ популярности языков программирования в 2010 году"  +/
Сообщение от Damon_ (ok), 11-Янв-11, 08:26 
А правильность уже зависит от того, что вы хотите получить.
Чтобы избежать оверхеда с копированием, можно передавать, как указатель, либо как ссылку. Вообще, параметры _НЕ_ИЗМЕНЯЮЩИЕСЯ_ в функции, рекомендуется передавать, как константную ссылку. Ну, понятно, что передавать "const char& ch", изврат, ессно! :-) В общем, здесь тоже надо смотреть по обстоятельствам.
Ответить | Правка | Наверх | Cообщить модератору

40. "Анализ популярности языков программирования в 2010 году"  –3 +/
Сообщение от iZEN (ok), 11-Янв-11, 10:16 
В Java скорость вызова методов примерно в 20 раз выше, чем в C++.
http://keithlea.com/javabench/data

В Java в параметры методов передаются копии значений, в том числе и ссылки на объекты передаются отдельными копиями (ссылок, а не объектов!). При этом GC учитывает все копии ссылок на объекты, в том числе и те, которые были переданы в качестве параметров методов.

Ответить | Правка | Наверх | Cообщить модератору

42. "Анализ популярности языков программирования в 2010 году"  +1 +/
Сообщение от Анон (?), 11-Янв-11, 10:28 
А вот, например, другие результаты:

http://shootout.alioth.debian.org/u32/benchmark.php?test=all...

Java, как видно, соснула в разы, особенно по памяти.

Ответить | Правка | Наверх | Cообщить модератору

47. "Анализ популярности языков программирования в 2010 году"  –6 +/
Сообщение от iZEN (ok), 11-Янв-11, 11:11 
>А вот, например, другие результаты

А что там? Не увидел конкретики — все тесты свалены в кучу, выбран средний результат.

>Java, как видно, соснула в разы, особенно по памяти.

Память больше не ресурс. 2ГБ сейчас стоят около 1000 рублей и продолжают дешеветь. Java нуждается в памяти так же, как ZFS нуждается в ней. То есть выделенная память используется наиболее эффективно. Правда, смотря по разгону Python'а, можно и этого достоинства лишиться. Deluge, например, кушает как не в себя. :))

Ответить | Правка | Наверх | Cообщить модератору

56. "Анализ популярности языков программирования в 2010 году"  +13 +/
Сообщение от 2Nike (ok), 11-Янв-11, 13:59 
> Память больше не ресурс

Вон из профессии!

Ответить | Правка | Наверх | Cообщить модератору

90. "Анализ популярности языков программирования в 2010 году"  +/
Сообщение от Кырыл (?), 12-Янв-11, 11:09 
> Вон из профессии!

64 гига памяти на java-машину стоят менее одного человекамесяца труда квалифицированного программиста.

Ответить | Правка | Наверх | Cообщить модератору

51. "Анализ популярности языков программирования в 2010 году"  +1 +/
Сообщение от Damon_ (ok), 11-Янв-11, 12:41 
> В Java скорость вызова методов примерно в 20 раз выше, чем в C++.

Вобщем-то, что я и говорил по поводу виртуальных функций.


class Toggle {
public:
     ....
    virtual Toggle& activate() {
         ....
    }
     ....
};

class NthToggle : public Toggle {
public:
     ....
    Toggle& activate() {
         ....
    }
     ....
};

    Toggle *toggle = new Toggle(val);
    for (int i=0; i<n; i++) {
    val = toggle->activate().value();
    }

     ....

    NthToggle *ntoggle = new NthToggle(val, 3);
    for (int i=0; i<n; i++) {
    val = ntoggle->activate().value();
    }

Это говорит лишь о конкретном компиляторе, но не о всех компиляторах.
В данном случае, не смотря на "виртуальность" ф-ции, контекст их использования известен, по этому, компилятор мог бы их и проинлайнить, результат работы от этого бы не изменился. Тем неменее, он этого не сделал и результат на лице. Как я понимаю, Server JVM, в конечном коде, который выполняется на процессоре (врядли при подобной скорости там интерпретируется байткод) это учла.

Так же там использовался gcc-3.3.1, мягко говоря, далеко не самый последний. Уж 4.5.5 на дворе, 4.6 ветка на подходе. Насколько помню, вроде были новости, что там не слабо оптимизацию подвинули.

Ответить | Правка | К родителю #40 | Наверх | Cообщить модератору

53. "Анализ популярности языков программирования в 2010 году"  +/
Сообщение от Damon_ (ok), 11-Янв-11, 12:49 
> Уж 4.5.5 на дворе, 4.6 ветка на подходе.

Прошу прощения.

4.4.5, ессно! Или 4.5.2...

Ответить | Правка | Наверх | Cообщить модератору

62. "Анализ популярности языков программирования в 2010 году"  +1 +/
Сообщение от Reyn (?), 11-Янв-11, 19:00 
>В Java скорость вызова методов примерно в 20 раз выше, чем в C++.

http://keithlea.com/javabench/index
>Despite its obvious flaws, this benchmark continues drawn a lot of attention and e-mail.

Быдлокодинг быдлокодингом, а vuze c eclipse как были коровами так и остались, сколько память не дешевела и процы не разгонялись. Схожие по функциональности µTorrent, kdevelop работают намного быстрей.


Ответить | Правка | К родителю #40 | Наверх | Cообщить модератору

65. "Анализ популярности языков программирования в 2010 году"  –2 +/
Сообщение от iZEN (ok), 11-Янв-11, 21:57 
> Быдлокодинг быдлокодингом, а vuze c eclipse как были коровами так и остались,
> сколько память не дешевела и процы не разгонялись. Схожие по функциональности
> µTorrent, kdevelop работают намного быстрей.

Если бы Eclipse и Vuse переписали бы на C++, то они бы не взлетели вообще. Вот такая вот сложность присутствует.


Ответить | Правка | Наверх | Cообщить модератору

98. "Анализ популярности языков программирования в 2010 году"  +/
Сообщение от ананим (?), 12-Янв-11, 11:45 
кедовцам и кутэшнигам это расскажи. вместе посмеётесь.
Ответить | Правка | Наверх | Cообщить модератору

91. "Анализ популярности языков программирования в 2010 году"  +/
Сообщение от Кырыл (?), 12-Янв-11, 11:13 
Под явой стоит понимать только Java EE, остальные реинкарнации - так, с боку припёка.
Ответить | Правка | К родителю #62 | Наверх | Cообщить модератору

86. "Анализ популярности языков программирования в 2010 году"  +/
Сообщение от kshetragia (ok), 12-Янв-11, 05:43 
Правильно - забыть про C++
Ответить | Правка | К родителю #32 | Наверх | Cообщить модератору

60. "Анализ популярности языков программирования в 2010 году"  +/
Сообщение от Аноним (-), 11-Янв-11, 17:23 
ну ты и быдлокодер значит. В функцию надо передавать объекты по ссылке
Ответить | Правка | К родителю #29 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру