Ставлю се Сафари, потому что ФФ 3.5 внезапно стал тормозить и глючить, а Опера дрянь.
Плюсы:
1. Нравится отображение шрифтов. Опера и ФФ нервно курят в сторонке.
2. Скорость выполнения JavaScript самая высокая на 10 Июля 2009 г. - выше, чем у Хрома (в 2.1 раза), Фаерфокса (в 2.2 раза) и Оперы (в 2.6 раза) (http://celtickane.com/labs/web-browser-javascript-benchmark/)
3. Написан на Objective-C, а не C++! :)
Минусы
1. Установочник весит 27 мб :o
2. Под Windows таки имеем кривоватый порт и отсюда вытекающее.
3. Нет нормальной возможности сохранять страницы (вики говорит, что беда с изображениями).
4. Плагинов наверняка кот наплакал.
5. После краша табы не восстанавливаются.
Собсно, сужу с того, чем я пользовался некоторое время год-два назад. Сейчас пока качаю эти 27 мб. Может быть, что-то изменилось. Та версия (3.0?) любила часто вылетать.
Посмотрим.
Вот, пишите лучше про Сафари, чем засирать форум всякими гадостями.
Плагинов Сафари, по-видимому, не держит вовсе. Или я что-то путаю.
У меня с ФФ 3.5 все хорошо... Хотя тоже есть соблазн перейти на красоту эту...
Не по нраву
1. Начинается...
(http://i065.radikal.ru/0907/78/7b2e2e1a6105.jpg)
Поменял "основной шрифт" на Arial Unicode MS, перепробовал разные найстроки самого сайта по шрифтам - толку нет.
2. Перевод гуя на русский. Есть пункт меню "Сбросить Safari". Думаю, что значит, но не решаюсь нажать. Если не найду решения нормального отображения эллинского, нажму :)
Почему не переведено выражение Top Sites? Ну так по мелочи.
3. Не понял, как вернуть кнопки СТОП и ОБНОВИТЬ обратно на панель, по умолчанию их нет :(
(http://s04.radikal.ru/i177/0907/2d/8290c885587f.jpg)
В настройках панели инструментов ничего такого нет. Зато можно добавить кнопку Mail, как я без неё жил.
Остановить загрузку можно через меню по правой кнопки мыши, но она какая-то глючная. С рефрешем вообще негусто. Я confused.
4. Исчезли портированные с Маков капельки-кнопки... Такие красявые были :'( В третьей версии были, сейчас в четвёртой не нахожу. В настройках искал - опять не нашёл. Ищите да обрящите - гон :)
По нраву
1. Собственное сглаживание шрифтов - ничо так.
2. Выделение активного элемента подсветкой, типа так:
(http://i048.radikal.ru/0907/9f/c91cbf541ad4.jpg)
Интересно, это с Маков портировано?
3. Top sites для самых посещаемых сайтов по открытию новой страницы; типа как в Опере, но красивше, как и всё от Apple:
(http://i044.radikal.ru/0907/0b/0f1cbdbf75d3.jpg)
3. Любимый минимализм (единственное, что убранием стопа и перезагрузки переборщили):
(http://i039.radikal.ru/0907/54/1fcab40206fe.jpg)
Две кнопки справа от строки поиска заменяют собой громоздкую плашку меню в ФФ. В Хроме так же...
Не сравнить конечно с ИЕ, где сотни дезориентирующих кнопочек со всех сторон, сторонние коммерческие тулбары в ПОЛЭКРАНА сами собой устанавливающиеся (даже если не открывать ИЕ вовсе, лишь вырубить фаерволл) и т. д.
4. Красявая анимация переноса панелей; возможность перетащить таб вне окна и откроется новое окно. Скромный браузер, а имеет функцию, появление которой в ФФ 3 (3.5?) сопровождалось в пресс-релизах бурями овацией, аплодисментами, феерверками :)
Закладки и всякую прочую ерунду не обсуждаю, потому что не пользуюсь. Я помню адреса всего, что мне нужно. Если что, гугол помогёт.
Хотя обработка яваскрипта по результатам некоторых тестов самая быстрая у Сафари, моему четырёхядернику как-то пофигу - плюс-минус пара миллисекунд, ё-мое.
На память тоже не жалуюсь, её с лихвой. Интересно так, открыл два окна (не таба), а считаются за один процесс. Открыто сейчас два окна, в общей сумме три таба, памяти ест 233 мб :o
Цитата: wienski от июля 22, 2009, 22:17
Плагинов Сафари, по-видимому, не держит вовсе. Или я что-то путаю.
У меня с ФФ 3.5 все хорошо... Хотя тоже есть соблазн перейти на красоту эту...
Большущий минус...
В общем, если не решу главную проблему — нормальную работу с уникодом, то снесу нафиг. Хороший браузер, в мелочах радует, в мелочах же бесит. На очереди Chrome :)
Цитата: Алексей Гринь от июля 22, 2009, 22:44
3. Не понял, как вернуть кнопки СТОП и ОБНОВИТЬ обратно на панель, по умолчанию их нет :(
(http://s04.radikal.ru/i177/0907/2d/8290c885587f.jpg)
В настройках панели инструментов ничего такого нет. Зато можно добавить кнопку Mail, как я без неё жил.
Остановить загрузку можно через меню по правой кнопки мыши, но она какая-то глючная. С рефрешем вообще негусто. Я confused.
Есть кнопки :) Не там ищете. "Остановить" находится в адресной строке справа при загрузке. Обновить — там же, когда страница уже загружена.
Цитата: Алексей Гринь от июля 22, 2009, 22:44
4. Исчезли портированные с Маков капельки-кнопки... Такие красявые были :'( В третьей версии были, сейчас в четвёртой не нахожу. В настройках искал - опять не нашёл. Ищите да обрящите - гон :)
Не вписывались эти кнопочки в общее оформление Windows, вот и убрали их из порта... Хотя да, сами по себе они красивы были.
А, перезагрузку страницы нашёл, да. Странное всё равно решение... Пользы от такого перемещения ноль. А раз пользы ноль — зачем извращаться над всем привычным класссическим интерфейсом? :)
Цитата: wienski от июля 22, 2009, 22:17
У меня с ФФ 3.5 все хорошо...
На стартапе стал ооочень долго загружаться, при вводе адреса выпадающий список зависает... Чувствую я, это опять виноват SQLite.
Зато в нём "из коробки" показывалась вся юникодная диакритика для древнегреческого без проблем...
Цитата: Алексей Гринь от июля 22, 2009, 22:44
На очереди Chrome :)
У Хрома нормального дистра нет, только установка по сети. :( Прожорлив. То, что от строки меню отказались,— это правильно. Она не нужна.
Цитата: Алексей Гринь от июля 22, 2009, 22:44
Хороший браузер, в мелочах радует, в мелочах же бесит.
А в чём хорошесть-то, в сглаживании шрифтов? :what:
Цитата: Алексей Гринь от июля 22, 2009, 23:17
На стартапе стал ооочень долго загружаться, при вводе адреса выпадающий список зависает...
А в ранних версиях всё же было нормально... :'( Наверно с каждой новой версией вместе с понтами и наворотами заодно баги прибавляются. Зато поддержка Юникода с самого начала была преимуществом ФФ. Почему другие браузеры не могут по-человечески Юникод поддерживать? :donno:
Короче, когда найдете подходящий браузер, то обязательно отпишитесь со ссылкой на него. Ладно?
Цитата: myst от июля 22, 2009, 23:22
А в чём хорошесть-то, в сглаживании шрифтов? :what:
В шарме :)
Цитата: Алексей Гринь от июля 22, 2009, 23:35
В шарме :)
У тебя есть скриншоты Сафари на Маке? Хочу посмотреть на красоту. :)
Цитата: myst от июля 22, 2009, 23:56
У тебя есть скриншоты Сафари на Маке? Хочу посмотреть на красоту. :)
Типа такие? Внимание, картинки:
(http://km.support.apple.com/library/APPLE/APPLECARE_ALLGEOS/HT2521/Set%20Home%20Page.png)
(http://km.support.apple.com/library/APPLE/APPLECARE_ALLGEOS/HT2521/HT2521_04.png)
? Их на apple.com полно :)
Мне не нравится серый цвет, в прочем. Я бы сделал его светлее, или заменил, опять же, на оттенок голубого. А то отдаёт 90-ыми. А так по дизайну то, что ниже серой плашки — просто гениально (например нет кнопок "применить", "отмена" и прочего мусора, всё изменяется сразу).
Третий сафари под виндовс выглядел абсолютно так же, вплоть до кнопочек и системкапшона. В четвёртой всё заменили на родной гуй. Читаю форумы - многие ругаются, не я один. Верните старый гуй! Виндосовский уныл!
Алсо:
ЦитироватьSafari is the first — and only — web browser to pass Acid 3. Acid 3 tests a browser's ability to fully render pages using the web standards used to build dynamic, next-generation websites, including CSS, JavaScript, XML, and SVG.
Только проверил, правда. Хром, как я слышал, тоже берёт 100, но появляется сообщение LINKTEST FAILED...
Правда непонятно, что это даёт конечному пользователю :) Собсно, ничего.
Вот собсно из-за чего я сейчас под Сафари:
(http://i053.radikal.ru/0907/32/45230854ce45.jpg)
И так каждый раз при запуске + внезапно беспричинно при работе. И ещё надолго виснет если ввести одну букву в адресной строке, например L (для lingvoforum). SQLite, видать, начинает елозить по базе и искать всё, содержащее букву L (а это не только адреса сайтов, но и все метаданные), и падает всё нахрен. Очистить историю — это не решение.
Цитата: Алексей Гринь от июля 23, 2009, 01:17
И так каждый раз при запуске + внезапно беспричинно при работе.
А я всё думал, что это у меня комп такой тормознутый. Оказывается у всех так.
У меня так виснет при такой конфигурации: практически нулёвый Windows XP SP3 — два месяца назад установлен, четырёхядерный Intel Core 2 Quad, занятая всего лишь на 600 мегебайт 2-гигабайтная оператива, 35 процессов в среднем в момент, 1 ТБ постоянной памяти (на прошлой машине Firefox 2 при 65 процессах, 2 гб оперативы, Pentium D, два года неперестанавливаемой винде не вис вовсе), средняя загрузка ЦПУ 0-5%. Я и думаю, что причина такого зависания может быть только в самом браузере.
Цитата: Алексей Гринь от июля 23, 2009, 01:03
Алсо:
QuoteЦитироватьSafari is the first — and only — web browser to pass Acid 3. Acid 3 tests a browser's ability to fully render pages using the web standards used to build dynamic, next-generation websites, including CSS, JavaScript, XML, and SVG.
Только проверил, правда. Хром, как я слышал, тоже берёт 100, но появляется сообщение LINKTEST FAILED...
Правда непонятно, что это даёт конечному пользователю :) Собсно, ничего.
Бета десятой Оперы проходит этот тест, причём, насколько я знаю, давно.
Цитата: myst от июля 23, 2009, 01:57
Бета десятой Оперы проходит этот тест, причём, насколько я знаю, давно.
То бета, а тут о конкретном стабле-релизе идёт речь.
Бета Safari 4 вышла 29.02.2009 г., бета Opera 10 — 3.06.2009 года. Feel the difference :)
myst, ты случаем не устроился на подработку рекламировать Оперу? А мы-то думаем, кому ты там переводишь... ;)
Цитата: Ванько Кацап от июля 23, 2009, 02:12
myst, ты случаем не устроился на подработку рекламировать Оперу? А мы-то думаем, кому ты там переводишь... ;)
Да это у нас продолжение
банкета холивара.
Цитата: Алексей Гринь от июля 23, 2009, 01:17
SQLite, видать, начинает елозить по базе и искать всё, содержащее букву L (а это не только адреса сайтов, но и все метаданные), и падает всё нахрен. Очистить историю — это не решение.
А sqlite3 vacuum на эти базы проводился?
Цитата: oort от июля 23, 2009, 13:54
А sqlite3 vacuum на эти базы проводился?
Не понял значения слова "проводился" в этом контексте :)
Забавно. Зараза всю диакритику в старлинге показывает верно (ФФ наоборот иногда любит выдать чонить эдакое), а эллинский в моей подписи до сих пор с квадратиками. Шо за дела?
И такое ощущение, что программисты Сафари (как и ФФ) не слышали о free/delete. Откроешь десятки страниц, ОЗУ взлетит с 25 мб до 140 мб, закладки все закроешь, а ОЗУ практически не уменьшается... Логично было чтоб вернулось при одной вкладке к первоначальному 25 мб Так сложно просмотренные страницы кешировать где-то на жёстком диске, если уж так их жмёт кешировать? Или в сжатом виде хранить? Да и блин, это же блин банальнейшее отображение статичного текста и статичных картинок, не редактор видео или 3d моделлер какой ведь! Я не понимаю, чего там такого выделять на 43 мегабайта (!!) на одну закладку? Да в эти 43 мегабайта у меня вся русская классика с текстом, картинками и биографией авторов вместится. Такое ощущение, что отпарсенные раздутые образы всех просмотренных с последнего запуска страниц так и висят в памяти неочищенными... Тупо как-то.
Цитата: Алексей Гринь от июля 23, 2009, 14:49
И такое ощущение, что программисты Сафари (как и ФФ) не слышали о free/delete.
В Опере то же самое. Видимо, это стандарт. Более того, закрытие одной вкладки из большого числа открытых занимает много времени (иногда очень много), но память не особенно высвобождается.
Может быть там недосборщик мусора свой, типа когда памяти сожрано уж слишком много, тогда только высвобождает, по расписанию. Тупая схема. Не люблю, когда программисты заботятся больше о себе, чем о конечных пользователях. Наверняка большая часть памяти сжирается из-за банальной лени.
Цитата: Алексей Гринь от июля 23, 2009, 14:49
ЦитироватьА sqlite3 vacuum на эти базы проводился?
Не понял значения слова "проводился" в этом контексте :)
for i in path-to-profile/*.sqlite; do sqlite3 $i vacuum; done
Под виндом другой синтаксис, которого я не помню, с таким же смыслом.
Цитата: Алексей Гринь от июля 23, 2009, 14:49
И такое ощущение, что программисты Сафари (как и ФФ) не слышали о free/delete.
В Objective-C не осилили уборщик мусора?
Цитата: Ванько Кацап от июля 23, 2009, 02:12
myst, ты случаем не устроился на подработку рекламировать Оперу? А мы-то думаем, кому ты там переводишь... ;)
Нет. Просто Опера реально лучший браузер. Чесно-чесно. :yes:
Цитата: Алексей Гринь от июля 23, 2009, 14:49
Так сложно просмотренные страницы кешировать где-то на жёстком диске, если уж так их жмёт кешировать?
Кто-то недавно хвалился гигабайтами памяти. :negozhe: Так вот, разработчики на таких и ориентируются. :) И это правильно, нечего памяти пустовать.
Цитата: Чайник777 от июля 23, 2009, 14:56
Более того, закрытие одной вкладки из большого числа открытых занимает много времени (иногда очень много), но память не особенно высвобождается.
Чиво?! У меня постоянно больше 100 вкладок открыто. Никаких тормозов на закрытии вкладок никогда не видел. Память Опера освобождает нормально, с небольшой задержкой в несколько секунд. Корзину закрытых вкладок очищать пробовали?
Цитата: Алексей Гринь от июля 23, 2009, 14:49
Я не понимаю, чего там такого выделять на 43 мегабайта (!!) на одну закладку?
Исходники WebKit'а открыты, бери да кури. ;) Если, конечно, это он «виноват». :)
Цитата: myst от июля 23, 2009, 21:01
Нет. Просто Опера реально лучший браузер. Чесно-чесно.
А мы таки поверили! :eat:
Цитата: myst от июля 23, 2009, 21:00
В Objective-C не осилили уборщик мусора?
В спецификации Objective-C 2.0 он есть, но можно выключать опцию и компилить без него. Под Apple реализация его имеет, а когда последний раз ковырял Objective-C под minGW, там не было ни сборщика мусора, ни исключений (точнее исключения компилировались без ошибок, но запуск программы вызывал сегфолт... может быть я не те либы подключал). Но то было 1.5 года назад и не правда. Чай, поменялась ситуация. Обжектив Си прикольный.
Цитата: myst от июля 23, 2009, 21:04
ЦитироватьТак сложно просмотренные страницы кешировать где-то на жёстком диске, если уж так их жмёт кешировать?
Кто-то недавно хвалился гигабайтами памяти. :negozhe: Так вот, разработчики на таких и ориентируются. :) И это правильно, нечего памяти пустовать.
Не, мне-то на память по барабану, да. Я об простых пользователях волнуюся. Плохая тенденция шо на них плюют недопрограммисты, лишь бы последним было харашо и удобно кнопочки на формочку таскать меж перерывами на томное попивание кофия. И пофиг ведь шо у бедного пользователя на одну кнопочку выделяется по 10 мб, всё тормозит и виснет :(
Цитата: myst от июля 23, 2009, 21:14
Исходники WebKit'а открыты, бери да кури. ;) Если, конечно, это он «виноват». :)
Шарики за ролики не заедут осиливать?
Цитата: Алексей Гринь от июля 23, 2009, 22:38
И пофиг ведь шо у бедного пользователя на одну кнопочку выделяется по 10 мб, всё тормозит и виснет :(
Так ить не факт, что это гуй память съедает. Может, это движок такой прожорливый. :donno:
Блин, я всё надеюсь на умные алгоритмы в современных программах... Думал, Сафари много памяти жрёт, потому что там какая-нибудь циклическая синхронизированная сборка мусора, т.е. не каждый момент, а через некоторые определённые интервалы времени, чтобы освобождать не по козявке, а целыми блоками (например можно было бы активировать огда пользователь неактивен, т.е. отошёл или просто читает страницу - не заметно бы было; эти два таба наверно реально жрут по 60 мб, ппц. Если нет, то они полные идиоты, если эт всё закешированные образы просмотренныхз страниц печальным грузом висятs). Хрен с два. Оставил два таба на 6 часов... Как было 124 МБ, так и осталось (за 6 часов не сообразил неиспользуемое заархивировать...)
21 век, ага. Программы как будто пишутся с помощью лома.
Цитата: Алексей Гринь от июля 25, 2009, 09:41
21 век, ага. Программы как будто пишутся с помощью лома.
У тебя есть возможность написать свой браузер с циклической синхронизированной сборкой мусора, блекджеком и шлюхами. :)
Я не выёживаюсь, я говорю какбэ логичные вещи. 21 век на дворе, терабайты и гигагерцы, а программы в целом по производительности как лет двадцать назад. В Adobe Premier Pro случается жуткая утечка памяти при импорте видео, выведенного из Flash. Я ипу.
В попу такой быдлокодерский мир, пойду повешусь.
Пропагандируйте ассемблер для архитектуры x86-64 :green:
Цитата: Алексей Гринь от июля 25, 2009, 19:11
В попу такой быдлокодерский мир, пойду повешусь.
Постой, не спеши! Скоро Common Lisp захватит мир, и наступит щастье. ;)
Шо-то у сафари частенько табы виснут (не реагируют на нажатия), и курсор меняет на забавный и начинает мерцать (это как было в версии 3.0, так и осталось в 4.0-ой).
Цитата: Алексей Гринь от июля 28, 2009, 09:29
Шо-то у сафари частенько табы виснут (не реагируют на нажатия), и курсор меняет на забавный и начинает мерцать (это как было в версии 3.0, так и осталось в 4.0-ой).
Кошерный Объектный Си не помог? ;-)
Язык-то тут причём? Дело в кривоватом порте библиотек CoreFoundation с Mac OS на Windows.
Цитата: Алексей Гринь от июля 28, 2009, 17:29
Язык-то тут причём? Дело в кривоватом порте библиотек CoreFoundation с Mac OS на Windows.
Ага, как кривое поделие на С++, так язык виноват, а как на Объектном Си, так... ;)
Цитата: myst от июля 28, 2009, 17:50
Ага, как кривое поделие на С++, так язык виноват, а как на Объектном Си, так... ;)
Э? У Си++ убогий синтаксис и убогая семантика. Реализации шустрые, но медленнее, чем в Си. В объектном Си хороший синтаксис и хорошая семантика. Но так как там все методы виртуальные, реализации Объектного Си в основном всегда медленнее С++. Я это знаю и не отрицаю.
Но при чём здесь вообще это? Я говорю, что конкретно
библиотеки, которые эмулируют АПИ Mac OS конкретно под Windows кривые в плане GDI. При чём здесь вообще реализиции конкретныз языков?
Почуй разницу:
1) в gcc-реализации С++ стандартные конструкторы медленнее, чем то же средствами С.
2) в порте-реализации CoreFoundation под WinApi32, скомпиленнной gcc, есть некоторые баги.
Первое это реализация
стандарта языка, второе - реализация
сторонней частной библиотеки.
Цитата: Алексей Гринь от июля 28, 2009, 19:16
1) в gcc-реализации С++ стандартные конструкторы медленнее, чем то же средствами С.
Ты мне исходники этого теста так и не дал. Так шта пока не верю. :smoke:
Цитата: Алексей Гринь от июля 28, 2009, 19:16
У Си++ убогий синтаксис и убогая семантика.
:o Тогда ты должен не любить и синтаксис Си, так как именно его синтаксис составляет основу синтаксиса C++.
Цитата: myst от июля 28, 2009, 20:31
Ты мне исходники этого теста так и не дал. Так шта пока не верю.
Я же давал где-то.
Си:
Цитировать
typedef struct
{
int x, y;
} CLala;
CLala* CLala_create(int x, int y)
{
CLala* self = malloc(sizeof(CLala));
self->x = x;
self->y = y;
return self;
}
Си++
Цитироватьclass CPLala
{
public:
int x, y;
CPLala(int x, int y): x(x), y(y) { }
};
И потом в цикле
Цитировать
CPLala* lala = new CPLala(10, 20);
delete lala;
и
Цитировать
CLala* lala = CLala_create(10, 20);
free(lala);
Цитата: myst от июля 28, 2009, 20:34
Тогда ты должен не любить и синтаксис Си, так как именно его синтаксис составляет основу синтаксиса C++.
Я имел в виду убогий синтаксис той фишки, которую они представляют как главное достоинство, — ООПа. Синтаксис ООПа кривой по сравнению с Обж-С (как и семантика). Синтаксис же собсно Си не критикуем, ибо классика :)
А по теме: я-таки перелез обратно на ФФ.
Сафари надоел тремя вещами:
1) глючит курсор, самопроизвольно меняется на другой и мерцает
2) зависают табы
3) половина юникода показывается квадратами, совсем не упёрлось думать, как это порешить :)
4) ну и ещё по мелочам, типа нет списка только что закрытых табов, а История показывает какое-то невразумительное пустое чёрное окно...
5) Да и Top Sites оказался бесполезен.
Цитата: Алексей Гринь от июля 28, 2009, 20:46
А по теме: я-таки перелез обратно на ФФ.
Поздравляю! :)
Цитата: Алексей Гринь от июля 28, 2009, 20:42
Я же давал где-то
Ну что я тебе могу сказать? Проблема эта даже не в самом gcc, а в библиотеке. Язык тут вообще не при чём. В VC С++-вариант даже быстрее (на 100 млн. итераций разница больше секунды на моём процессоре). Так-то.
Переопредели
new и
delete, чтобы они просто вызывали
malloc и
free соответственно, и результаты станут одинаковыми.
Вообще, тест отдельной реализации — это именно тест реализации, а не языка. Язык не может быть быстрым или медленным, нет у него такого качества.
Цитата: myst от июля 28, 2009, 23:26
Язык не может быть быстрым или медленным, нет у него такого качества.
Есть, скорость зависит от концепции языка. Если все методы делать виртуальными (то бишь на каждый вызов, даже если нету потомков, будет проводиться диспатчинг в пару лишних опкодов), как это в смоллтоке или обж-с, то любая реализация некоего класса А на таких языках
гарантированно будет медленнее, чем то же, но средствами с++, в котором методам разрешено быть невиртуальными.
Если в концепции языка нету такой штуки, как объект на стеке (как например в жабе), то и в данном случае в практически любой реализации ява-машины гарантированно оно будет медленнее, чем в с++ (слыхал, якобы, последние явы умеют распозновать что к чему и выделять объект на стеке, но хз хз).
Если в концепции усмотрено прототипирование, то тоже всё будет гарантированно медленнее, чем в языке без прототипирования.
Если в концепции языка усмотрен дак-тайпинг, то бишь проверка типов в рантайме, то оно гарантированно будет медленнее, чем в языках со статической типизацией.
Если в концепции есть такие вещи как интроспеция самого себя в любой момент времени с вытекающими, где неминуема интерпретация, то оно тоже будет гарантированно медленнее, чем без.
Концепция языка во многом задаёт скорость выполнения по сравнению с другими концепциями. Поэтому можно сравнивать.
ЦитироватьПроблема эта даже не в самом gcc, а в библиотеке. Язык тут вообще не при чём.
Эээ. Вообще-то стандарт задаёт набор библиотек. Без них язык не язык. Они есть часть языка. Если есть кривость в реализации стандартной либы, значит это кривость в реализации языка вообще.
Цитата: Алексей Гринь от июля 29, 2009, 00:18
Если все методы делать виртуальными (то бишь на каждый вызов, даже если нету потомков, будет проводиться диспатчинг в пару лишних опкодов), как это в смоллтоке или обж-с, то любая реализация некоего класса А на таких языках гарантированно будет медленнее, чем то же, но средствами с++, в котором методам разрешено быть невиртуальными.
Ничего подобного. Из того, что текущие реализации на текущем железе медленные, не следует принципиальная медленность языка.
Цитата: Алексей Гринь от июля 29, 2009, 00:18
Если есть кривость в реализации стандартной либы, значит это кривость в реализации языка вообще.
Что значит вообще? :o
Но так-то mingw-gcc переадресует все malloc'ы и free'ы к таковым в msvcrt.dll, которые сами по себе являются обёртками над winapi'шными функциями типа GlobalAlloc, LocalAlloc и проч., поэтому не понятно в принципе почему VC++ вариант быстрее, ведь он обращается к тем же самым системным функциям.
Цитата: myst от июля 29, 2009, 00:22
Ничего подобного. Из того, что текущие реализации на текущем железе медленные, не следует принципиальная медленность языка.
Так медлнность понятие относительное! Если реализация языка А на одном железе медленнее реализации языка Б на том же самом — значит, реализация языка А медленная. Я что, при сравнении запускаю Си++ на первом пне, а Си-вариант на Интел Коре Ту Квад? Делать нечего :)
Цитата: myst от июля 29, 2009, 00:25
Что значит вообще? :o
Стандартная библиотека = часть языка.
Если есть баг/тормоза в стандартной библиотеке — значит, это баг/тормоза в языке (точнее в его реализации)
Цитата: Алексей Гринь от июля 29, 2009, 00:26
Но так-то mingw-gcc переадресует все malloc'ы и free'ы к таковым в mscvrt.dll, которые сами по себе являются обёртками над winapi'шными функциями типа GlobalAlloc, LocalAlloc и проч., поэтому не понятно в принципе почему VC++ вариант быстрее, ведь он обращается к тем же самым системным функциям.
Ты не понял, у меня сишная версия чуть медленнее сплюплюсной, если собирать микрософтовскими инструментами. GCC у меня из cygwin'а вообще. Сравнивать скорость cygwin'овских со скоростью «родных» программ смысла нет.
Почему медленнее? Надо лезть в дизассемблер и смотреть. Чудес, ясное дело, не предвидится. :)
Цитата: myst от июля 29, 2009, 00:33
GCC у меня из cygwin'а вообще.
Ужос...
Цитата: myst от июля 29, 2009, 00:33
Сравнивать скорость cygwin'овских со скоростью «родных» программ смысла нет.
А я-то сравниваю mingw-овские; тебе смысла нет, мне — есть :)
.text:77C1C407 mov edi, edi
.text:77C1C409 push ebp
.text:77C1C40A mov ebp, esp
.text:77C1C40C cmp hHeap, 0
.text:77C1C413 jnz short loc_77C1C420
.text:77C1C415 call sub_77C0EF38
.text:77C1C41A test eax, eax
.text:77C1C41C jnz short loc_77C1C420
.text:77C1C41E pop ebp
.text:77C1C41F retn
.text:77C1C420
.text:77C1C420 loc_77C1C420:
.text:77C1C420 push dword_77C51808
.text:77C1C426 push [ebp+arg_0]
.text:77C1C429 call alloc_memory
.text:77C1C42E pop ecx
.text:77C1C42F pop ecx
.text:77C1C430 pop ebp
.text:77C1C431 retn
.text:77C19CC5 mov edi, edi
.text:77C19CC7 push ebp
.text:77C19CC8 mov ebp, esp
.text:77C19CCA push 1
.text:77C19CCC push [ebp+arg_0]
.text:77C19CCF call alloc_memory
.text:77C19CD4 pop ecx
.text:77C19CD5 pop ecx
.text:77C19CD6 pop ebp
.text:77C19CD7 retn
malloc медленнее из-за ветвления. Я же говорил, что никаких чудес. :)
Вообще оптимизаторы любят конструкторы инлайнить. Видимо, gс++ не инлайнил у меня...
Цитата: Алексей Гринь от июля 29, 2009, 00:38
А я-то сравниваю mingw-овские; тебе смысла нет, мне — есть :)
Ты опять не понял, я сравнивал варианты, собранные одними инструментами. Разница в пользу Си есть только у gcc из-за реализации
new в libstdc++, ну и в
delete есть лишнее ветвление (парни ниасилили стандарт, или реализация
free была баговая :)).
Цитата: Алексей Гринь от июля 29, 2009, 00:48
Видимо, gс++ не инлайнил у меня...
Если мне память не изменяет, определение
CPLala(int x, int y): x(x), y(y) { } всегда inline. :what:
Таки короче надо популяризировать идеи Vala :)
Цитата: Алексей Гринь от июля 29, 2009, 00:38
Ужос...
Ну почему ужос? Да, он педальный, но очень полезный. Версия 1.7 просто замечательная, даром что бета ещё. :)
Цитата: Алексей Гринь от июля 29, 2009, 00:55
Таки короче надо популяризировать Vala :)
Они его допилили? Помню, гноммеры раскидывали распальцовки на ЛОР'е, но тогда эта штука была сыровата.
Цитата: myst от июля 29, 2009, 00:57
Они его допилили? Помню, гноммеры раскидывали распальцовки на ЛОР'е, но тогда эта штука была сыровата.
Да мне не нравится ентот GObject. Я хочу C#-/Java-подобный простенький язык, но шоб без огромного рантайма (а ля gcj'овский в 3 мегабайта, аха), без сборщика мусора, без зависимости от непонятных кривоватых динамически-типизированных либ типа GObject. Шоб то, шо я делаю в объектно-ориентированном си, отшаблонить в более простые и абстрактные структуры...
Хоть сам иди и транслятор в Си пиши, ничего толкового нету (везде какие-нибудь медленные, тяжеловесные депенденсись) :( А ля
Цитироватьvar childClass = new childClass();
childClass.boo();
превратилось в что-то типа
ЦитироватьChildClass* childClass = ChildClass_create();
(*__dispatch(childClass, ChildClass_BOO))(); // где ChildClass_BOO енто макрос для, скажем, 2 (номер в таблице методов)
И усё. Потом любимым компилятором прошёлсе и получил бинарник. А вот Vala генерит для такого примера такой ужас, шо ужас.
Надо бы ужо осилить какой-нибудь yacc :)
Цитата: Алексей Гринь от июля 29, 2009, 01:09
Я хочу C#-/Java-подобный простенький язык, но шоб без огромного рантайма (а ля gcj'овский в 3 мегабайта, аха), без сборщика мусора, без зависимости от непонятных кривоватых динамически-типизированных либ типа GObject.
Да, нету щастья. Я, помню, искал-искал, но так и не нашёл. Нужна ось, у которой юзерленд из рантайма той же Жабы, Оберона или CL растёт, и будет всё OK. Но все велосипеды придётся переизобретать, особенно в случае Оберона. :)