Тема: С++ vs Java

Ответить в теме
Страница 5 из 7 ПерваяПервая ... 3 4 5 6 7 ПоследняяПоследняя
Показано с 81 по 100 из 134
  1. Вверх #81
    Посетитель
    Пол
    Мужской
    Возраст
    47
    Сообщений
    237
    Репутация
    18
    с одной стороны где ж взять столько памяти, с другой, вытеснив неисользуемые данные в своп, освободившееся место можно использовать под дисковый кеш, что улучшит производительность
    у меня другая теория: хочешь быстрый комп - покупай быстрый винчестер. правда, в последнее время для ускорения винчестеры, как и процессоры, приходится распараллеливать


  2. Вверх #82
    Посетитель
    Пол
    Мужской
    Возраст
    47
    Сообщений
    237
    Репутация
    18
    Цитата Сообщение от traveller
    а ссылка есть? надо сильно
    навредить ?

  3. Вверх #83
    Частый гость Аватар для homo ludens
    Пол
    Мужской
    Сообщений
    751
    Репутация
    141
    явным вызовом mlock/mlockall можно блокировать регион памяти от свопирования, но тогда опять возникает проблема -
    ...
    Цитата Сообщение от pal
    где ж взять столько памяти
    ...
    так что 4Г RAM - не роскошь, а средство быстрого передвижения к очередному дидлайну.
    http://www.gnu.org/software/libc/manual/html_node/Locking-Pages.html
    The future is already here - it is just unevenly distributed. (c) W. Gibson

  4. Вверх #84
    Посетитель
    Пол
    Мужской
    Возраст
    47
    Сообщений
    237
    Репутация
    18
    к сожалению, 4г это не 640к и не для всех достаточно

  5. Вверх #85
    Частый гость Аватар для homo ludens
    Пол
    Мужской
    Сообщений
    751
    Репутация
    141

    наткнулся про сборщики мусора и джава:
    http://bash.org.ru/quote.php?num=811
    еще понравилось:
    http://bash.org.ru/quote.php?num=5844
    The future is already here - it is just unevenly distributed. (c) W. Gibson

  6. Вверх #86
    Посетитель
    Пол
    Мужской
    Возраст
    47
    Сообщений
    237
    Репутация
    18
    "C++ Is my favorite garbage collected language because it generates so little garbage" (c) bs

  7. Вверх #87
    SWARM
    гость
    Цитата Сообщение от homo ludens Посмотреть сообщение
    OS GNU/Linux
    ОС Linux написана на обычном С без С++ )))

  8. Вверх #88
    Частый гость Аватар для homo ludens
    Пол
    Мужской
    Сообщений
    751
    Репутация
    141
    Цитата Сообщение от SWARM Посмотреть сообщение
    ОС Linux написана на обычном С без С++ )))
    И слава богу, иначе сборка ядра занимала бы сутки...
    А уж про глючность не говорю...
    The future is already here - it is just unevenly distributed. (c) W. Gibson

  9. Вверх #89
    Частый гость Аватар для THRESHE
    Пол
    Мужской
    Адрес
    Одесса
    Сообщений
    978
    Репутация
    39
    Цитата Сообщение от SWARM Посмотреть сообщение
    ОС Linux написана на обычном С без С++ )))
    Unix написан на С в те времена когда С++ еще в помине не было. Видно Linux решили писать на нем же

  10. Вверх #90
    Частый гость Аватар для THRESHE
    Пол
    Мужской
    Адрес
    Одесса
    Сообщений
    978
    Репутация
    39
    Цитата Сообщение от homo ludens Посмотреть сообщение
    И слава богу, иначе сборка ядра занимала бы сутки...
    А уж про глючность не говорю...
    Прямо уж сутки а глючность зависит от разработчика, а не от С++

  11. Вверх #91
    Частый гость Аватар для homo ludens
    Пол
    Мужской
    Сообщений
    751
    Репутация
    141
    Цитата Сообщение от THRESHE Посмотреть сообщение
    Unix написан на С в те времена когда С++ еще в помине не было. Видно Linux решили писать на нем же
    Странно, как люди до С++ жили...
    Провел эксперимент - перевел программеров с С++ на С.
    Результат - количество глюков заметно уменьшилось.
    Факт... Для некоторых наверное неожиданный...

    В конце 90-х был обзор крупных проектов которые писались с использованием ООП и без него. Сроки разработки, количество ошибок и т.п. Результаты были вполне предсказуемы...

    Also, remember that the fastest parts of a program are those that are done before the pro-gram even starts. In general, you should:
    • Catch errors during translation time (compiling and linking) rather than at run time. You should make the most of type checking and access checking, which means you should avoid using casts and void *.
    • Simplify run-time computations by doing what you can at compile time.
    • If you must do computations at run-time, shift them from the most time-critical parts to the least time-critical parts of the program (which is often, but not always, program start-up).
    • When all else fails, try using C++ as just C.
    (c) Reducing Run-Time Overhead in C++ Programs
    Embedded Systems Conference San Francisco 2002
    The future is already here - it is just unevenly distributed. (c) W. Gibson

  12. Вверх #92
    Посетитель
    Пол
    Мужской
    Возраст
    47
    Сообщений
    237
    Репутация
    18
    os linux написана раньше чем ее компилятор с++

  13. Вверх #93
    Посетитель
    Пол
    Мужской
    Возраст
    47
    Сообщений
    237
    Репутация
    18
    Цитата Сообщение от homo ludens Посмотреть сообщение
    Странно, как люди до С++ жили...
    так же как и до фортрана
    Провел эксперимент - перевел программеров с С++ на С.
    Результат - количество глюков заметно уменьшилось.
    Факт... Для некоторых наверное неожиданный...
    это не делает чести этим программерам
    В конце 90-х был обзор крупных проектов которые писались с использованием ООП и без него. Сроки разработки, количество ошибок и т.п. Результаты были вполне предсказуемы...
    все крупные проекты, приходящие на ум в конце десятых, используют ооп в той или иной мере
    • When all else fails, try using C++ as just C.
    ну, это ведь не значит "используйте malloc вместо new или fabs вместо std :: abs" , скорее что-то типа "не передавайте структуры по значению и не используйте исключений в качестве альтернативного возврата"

  14. Вверх #94
    Цитата Сообщение от SWARM Посмотреть сообщение
    ОС Linux написана на обычном С без С++ )))
    А что такое ОС Linux?
    Только ядро,
    или к примеру, KBD окна?

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

  15. Вверх #95
    Частый гость Аватар для homo ludens
    Пол
    Мужской
    Сообщений
    751
    Репутация
    141
    OS Linux состоит из двух основных частей - ядра Торвальдса и кучи пакетов GNU
    Сам Столлман утверждает, что правильное название - OS GNU/Linux. Ядро написано на С. С GNU частью сложнее, однако и там С доминирует.
    Разумеется там есть и С++ код, только вот встречается он как ни странно редко и преимущественно в двух областях (исключение - mysql).
    Первая область - это ГУИ разных вариантов и пользовательские прибамбасы. Я всегда сомневался в жизненности идеи сделать из линукса виндоуз, однако именно здесь С++ оправдан, так как со времен Смоллтока любой гуй несет каинову печать с яркой надписью по кругу - Ugly by Design.
    Вторая область - это многочисленные оболочки над существующим кодом (обычно С), которые позволяют 00-программерам не напрягаться и мыслить в привычном русле. Собственной функциональности у таких пакетов - 0.
    Возьмите любой репозиторий Линукса и проверьте сами.

    Есть исключения и из этих двух правил, однако большинство из них несут характерные признаки непонимания авторами софта одной маленькой, но очень поганой разницы в понятиях. Есть софт, делающий жизнь удобнее. Есть софт, который расширяет возможности. И большинство ОО-проектов пишутся так, как будто вторая категория включена в первую. А это неправда.
    The future is already here - it is just unevenly distributed. (c) W. Gibson

  16. Вверх #96
    Частый гость Аватар для homo ludens
    Пол
    Мужской
    Сообщений
    751
    Репутация
    141
    Несколько замечаний по предыдущим постам.

    1. Торвальдс начал писать Линукс в октябре 91. Страуструп начал писать С++ в 83-м. Очевидно, Торвальдс хорошо понимал разницу между языками и сделал правильный выбор.

    2. В защиту фортрана (и умершего в прошлом месяце его автора - небезизвестного Бэкуса) могу привести очень характерный пример.
    Есть очень старая библиотека - называется BLAS. Библиотека линейной алгебры. Любой серьезный производитель процессоров дает свою версию библиотеки оптимизированную под себя. Есть она и у Intel и у AMD. Что характерно - пишется на фортране с ассемблером. Интерфейсы - фортрановские. Мне почему-то кажется, что человека, который раскроет глаза Intel что надо ее писать на С++ в объектном стиле выгонят не дослушав.
    Интересно, что любой программист, который приходит с института и которому я даю задачу написать какую-то математику почему-то начинает строчить свою реализацию TMatrix. Приходится очень долго бить по рукам, чтобы отучить от этой пагубной привычки.

    Вопрос - где на самом деле повторное использование кода выше - в фортране или С++?
    Учитывая количество программ в мире использующих векторные и матричные операции (любая обработка изображений например и т.п.).

    3. В защиту malloc против new.
    Работа с new вместо malloc хуже! Потому что new абстрактно атомарен и следовательно при невозможности создать объект генерирует эксепшн. Затратный до одурения. 5 лет назад большинство компилеров оборачивало ЛЮБОЙ вызов конструктора в трай-кетч, а программист про это и не знал. Что давало падение производительности до 40 раз! Сейчас ситуация получше, но смысл в использовании этих вещей, кроме синтаксического сахара? Делать из С Бейсик? Работая с malloc можно пользоваться статическим чекером splint, разработчики которого официально заявили, что не будут поддерживать С++ по причине сложности его модели памяти. Работая с malloc можно использовать тонны наработанного кода по отладке памяти. А с new/delete? Последний статический чекер С++ который я видел стоил всех бабок и имел переполненные баглисты за каждый месяц.

    про std:abs и крупные проекты на ООП напишу, если не размажут по стенке за этот пост.
    The future is already here - it is just unevenly distributed. (c) W. Gibson

  17. Вверх #97
    Частый гость Аватар для THRESHE
    Пол
    Мужской
    Адрес
    Одесса
    Сообщений
    978
    Репутация
    39
    Цитата Сообщение от homo ludens Посмотреть сообщение
    если не размажут по стенке за этот пост.
    Ща мы с pal размажем

    Если бы new был настолько хуже чем malloc его бы не придумали
    Последний раз редактировалось THRESHE; 01.04.2007 в 23:29.

  18. Вверх #98
    Посетитель Аватар для traveller
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    42
    Сообщений
    171
    Репутация
    25
    Цитата Сообщение от homo ludens Посмотреть сообщение
    про std:abs и крупные проекты на ООП напишу, если не размажут по стенке за этот пост.
    пиши, я лично вот очень внимательно слушаю
    как сказал мне когда-то очень давно, один очень продвинутый дядька,
    при вызове new автоматически вызывается конструктор, а при вызове delete - деструктор (см. следующий пункт). Так что нововведение можно описать формулой: new = malloc + конструктор, delete = free + деструктор.
    Последний раз редактировалось traveller; 02.04.2007 в 08:30.

  19. Вверх #99
    Новичок
    Пол
    Мужской
    Сообщений
    31
    Репутация
    10
    Цитата Сообщение от traveller Посмотреть сообщение
    пиши, я лично вот очень внимательно слушаю
    как сказал мне когда-то очень давно, один очень продвинутый дядька,
    при вызове new автоматически вызывается конструктор, а при вызове delete - деструктор (см. следующий пункт). Так что нововведение можно описать формулой: new = malloc + конструктор, delete = free + деструктор.
    есть еще возможность переопределения
    обычно делается для пулирования, но возможны и другие применения

  20. Вверх #100
    Частый гость Аватар для homo ludens
    Пол
    Мужской
    Сообщений
    751
    Репутация
    141
    управление жизненным циклом объекта - это не прерогатива ООП. Инициализацию и освобождение ресурсов писали еще на ассемблере задолго до Страуструпа. ООП дал этой технике новую синтаксическую нотацию и расширил семантику, гарантировав атомарность операции.
    malloc, если нельзя получить память возвращает 0. Что возвратит инициализатор на С? А что захотим, то и вернет. Принято, что указатель, либо 0 в случае ошибки. А что в этом случае делает конструктор С++? А вот хз. У Страуструпа почему-то про это не написано. Разве что в приложении, которое почему-то на русском языке раньше издавалось отдельно, а сейчас похоже вообще не издается. Сейчас полез в последний драфт стандарта, тоже не нашел...
    Вернуть значение конструктору нельзя. С++ Faq-lite рекомендует переводить объект в зомби путем установки внутреннего состояния в "полуоткрытый". Либо юзать внешний exception с контролем уже распределенных ресурсов. В результате имеем классный выбор - либо дикий геморрой либо гемморой с понижением производительности. И все только за тем, чтобы с помощью трюка обойти ограничения языка и вернуть одно значение ошибки (в виде индикатора состояния или кода exception). И вот оно нам надо? Может все-таки malloc с классическим инициализатором и полной свободой реализации попроще будет?

    Кстати а если конструктор самого exception не сработал, что будет? А там ведь временный объект создается...
    Будет время - обязательно поэкспериментирую... Люблю вивисекцией заниматься.
    И еще люблю перечитывать http://local.joelonsoftware.com/mediawiki/index.php/Russian пункт 36...
    The future is already here - it is just unevenly distributed. (c) W. Gibson


Ответить в теме
Страница 5 из 7 ПерваяПервая ... 3 4 5 6 7 ПоследняяПоследняя

Похожие темы

  1. cdma и java
    от Eu в разделе Мобильная техника
    Ответов: 1
    Последнее сообщение: 03.11.2005, 22:44
  2. Java MIDP 2.0
    от Eu в разделе Мобильная техника
    Ответов: 0
    Последнее сообщение: 06.10.2005, 11:47
  3. Разработка Java приложений
    от Adro1t в разделе Программирование
    Ответов: 1
    Последнее сообщение: 06.08.2005, 15:03
  4. заливка java игр на х100
    от from_hell в разделе Мобильная техника
    Ответов: 16
    Последнее сообщение: 30.03.2005, 22:10
  5. HELP!!!!!!!! (Java апплеты) ....
    от Jeno в разделе Программирование
    Ответов: 3
    Последнее сообщение: 27.10.2004, 10:46

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения