Лингвофорум

Лингвоблоги => Личные блоги => Блоги => Алексей Гринь => Тема начата: Алексей Гринь от июля 22, 2009, 15:30

Название: Safari
Отправлено: Алексей Гринь от июля 22, 2009, 15:30
Ставлю се Сафари, потому что ФФ 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?) любила часто вылетать.

Посмотрим.
Название: Safari
Отправлено: злой от июля 22, 2009, 22:00
Вот, пишите лучше про Сафари, чем засирать форум всякими гадостями.
Название: Safari
Отправлено: wienski от июля 22, 2009, 22:17
Плагинов Сафари, по-видимому, не держит вовсе. Или я что-то путаю.
У меня с ФФ 3.5 все хорошо... Хотя тоже есть соблазн перейти на красоту эту...
Название: Safari
Отправлено: Алексей Гринь от июля 22, 2009, 22:44
Не по нраву
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 :)
Название: Safari
Отправлено: wienski от июля 22, 2009, 23:03
Цитата: Алексей Гринь от июля 22, 2009, 22:44
3. Не понял, как вернуть кнопки СТОП и ОБНОВИТЬ обратно на панель, по умолчанию их нет :(
(http://s04.radikal.ru/i177/0907/2d/8290c885587f.jpg)
В настройках панели инструментов ничего такого нет. Зато можно добавить кнопку Mail, как я без неё жил.
Остановить загрузку можно через меню по правой кнопки мыши, но она какая-то глючная. С рефрешем вообще негусто. Я confused.
Есть кнопки :) Не там ищете. "Остановить" находится в адресной строке справа при загрузке. Обновить — там же, когда страница уже загружена.

Цитата: Алексей Гринь от июля 22, 2009, 22:44
4. Исчезли портированные с Маков капельки-кнопки... Такие красявые были :'( В третьей версии были, сейчас в четвёртой не нахожу. В настройках искал - опять не нашёл. Ищите да обрящите - гон :)
Не вписывались эти кнопочки в общее оформление Windows, вот и убрали их из порта... Хотя да, сами по себе они красивы были.
Название: Safari
Отправлено: Алексей Гринь от июля 22, 2009, 23:12
А, перезагрузку страницы нашёл, да. Странное всё равно решение... Пользы от такого перемещения ноль. А раз пользы ноль — зачем извращаться над всем привычным класссическим интерфейсом? :)
Название: Safari
Отправлено: Алексей Гринь от июля 22, 2009, 23:17
Цитата: wienski от июля 22, 2009, 22:17
У меня с ФФ 3.5 все хорошо...
На стартапе стал ооочень долго загружаться, при вводе адреса выпадающий список зависает... Чувствую я, это опять виноват SQLite.
Зато в нём "из коробки" показывалась вся юникодная диакритика для древнегреческого без проблем...
Название: Safari
Отправлено: myst от июля 22, 2009, 23:19
Цитата: Алексей Гринь от июля 22, 2009, 22:44
На очереди Chrome :)
У Хрома нормального дистра нет, только установка по сети. :( Прожорлив. То, что от строки меню отказались,— это правильно. Она не нужна.
Название: Safari
Отправлено: myst от июля 22, 2009, 23:22
Цитата: Алексей Гринь от июля 22, 2009, 22:44
Хороший браузер, в мелочах радует, в мелочах же бесит.
А в чём хорошесть-то, в сглаживании шрифтов? :what:
Название: Safari
Отправлено: Ванько от июля 22, 2009, 23:25
Цитата: Алексей Гринь от июля 22, 2009, 23:17
На стартапе стал ооочень долго загружаться, при вводе адреса выпадающий список зависает...
А в ранних версиях всё же было нормально... :'( Наверно с каждой новой версией вместе с понтами и наворотами заодно баги прибавляются. Зато поддержка Юникода с самого начала была преимуществом ФФ. Почему другие браузеры не могут по-человечески Юникод поддерживать? :donno:
Название: Safari
Отправлено: Лукас от июля 22, 2009, 23:33
Короче, когда найдете подходящий браузер, то обязательно отпишитесь со ссылкой на него. Ладно?
Название: Safari
Отправлено: Алексей Гринь от июля 22, 2009, 23:35
Цитата: myst от июля 22, 2009, 23:22
А в чём хорошесть-то, в сглаживании шрифтов? :what:
В шарме :)
Название: Safari
Отправлено: myst от июля 22, 2009, 23:56
Цитата: Алексей Гринь от июля 22, 2009, 23:35
В шарме :)
У тебя есть скриншоты Сафари на Маке? Хочу посмотреть на красоту. :)
Название: Safari
Отправлено: Алексей Гринь от июля 23, 2009, 01:03
Цитата: 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...
Правда непонятно, что это даёт конечному пользователю :) Собсно, ничего.
Название: Safari
Отправлено: Алексей Гринь от июля 23, 2009, 01:17
Вот собсно из-за чего я сейчас под Сафари:

(http://i053.radikal.ru/0907/32/45230854ce45.jpg)

И так каждый раз при запуске + внезапно беспричинно при работе. И ещё надолго виснет если ввести одну букву в адресной строке, например L (для lingvoforum). SQLite, видать, начинает елозить по базе и искать всё, содержащее букву L (а это не только адреса сайтов, но и все метаданные), и падает всё нахрен. Очистить историю — это не решение.
Название: Safari
Отправлено: Ванько от июля 23, 2009, 01:27
Цитата: Алексей Гринь от июля 23, 2009, 01:17
И так каждый раз при запуске + внезапно беспричинно при работе.
А я всё думал, что это у меня комп такой тормознутый. Оказывается у всех так.
Название: Safari
Отправлено: Алексей Гринь от июля 23, 2009, 01:35
У меня так виснет при такой конфигурации: практически нулёвый Windows XP SP3 — два месяца назад установлен,  четырёхядерный Intel Core 2 Quad, занятая всего лишь на 600 мегебайт 2-гигабайтная оператива, 35 процессов в среднем в момент, 1 ТБ постоянной памяти (на прошлой машине Firefox 2 при 65 процессах, 2 гб оперативы, Pentium D, два года неперестанавливаемой винде не вис вовсе), средняя загрузка ЦПУ 0-5%. Я и думаю, что причина такого зависания может быть только в самом браузере.
Название: Safari
Отправлено: myst от июля 23, 2009, 01:57
Цитата: Алексей Гринь от июля 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...
Правда непонятно, что это даёт конечному пользователю :) Собсно, ничего.
Бета десятой Оперы проходит этот тест, причём, насколько я знаю, давно.
Название: Safari
Отправлено: Алексей Гринь от июля 23, 2009, 02:09
Цитата: myst от июля 23, 2009, 01:57
Бета десятой Оперы проходит этот тест, причём, насколько я знаю, давно.
То бета, а тут о конкретном стабле-релизе идёт речь.
Бета Safari 4 вышла 29.02.2009 г., бета Opera 10 — 3.06.2009 года. Feel the difference :)
Название: Safari
Отправлено: Ванько от июля 23, 2009, 02:12
myst, ты случаем не устроился на подработку рекламировать Оперу? А мы-то думаем, кому ты там переводишь... ;)
Название: Safari
Отправлено: Алексей Гринь от июля 23, 2009, 02:28
Цитата: Ванько Кацап от июля 23, 2009, 02:12
myst, ты случаем не устроился на подработку рекламировать Оперу? А мы-то думаем, кому ты там переводишь... ;)
Да это у нас продолжение банкета холивара.
Название: Safari
Отправлено: oort от июля 23, 2009, 13:54
Цитата: Алексей Гринь от июля 23, 2009, 01:17
SQLite, видать, начинает елозить по базе и искать всё, содержащее букву L (а это не только адреса сайтов, но и все метаданные), и падает всё нахрен. Очистить историю — это не решение.
А sqlite3 vacuum на эти базы проводился?
Название: Safari
Отправлено: Алексей Гринь от июля 23, 2009, 14:49
Цитата: oort от июля 23, 2009, 13:54
А sqlite3 vacuum на эти базы проводился?
Не понял значения слова "проводился" в этом контексте :)



Забавно. Зараза всю диакритику в старлинге показывает верно (ФФ наоборот иногда любит выдать чонить эдакое), а эллинский в моей подписи до сих пор с квадратиками. Шо за дела?
И такое ощущение, что программисты Сафари (как и ФФ) не слышали о free/delete. Откроешь десятки страниц, ОЗУ взлетит с 25 мб до 140 мб, закладки все закроешь, а ОЗУ практически не уменьшается... Логично было чтоб вернулось при одной вкладке к первоначальному 25 мб Так сложно просмотренные страницы кешировать где-то на жёстком диске, если уж так их жмёт кешировать? Или в сжатом виде хранить? Да и блин, это же блин банальнейшее отображение статичного текста и статичных картинок, не редактор видео или 3d моделлер какой ведь! Я не понимаю, чего там такого выделять на 43 мегабайта (!!) на одну закладку? Да в эти 43 мегабайта у меня вся русская классика с текстом, картинками и биографией авторов вместится. Такое ощущение, что отпарсенные раздутые образы всех просмотренных с последнего запуска страниц так и висят в памяти неочищенными... Тупо как-то.
Название: Safari
Отправлено: Чайник777 от июля 23, 2009, 14:56
Цитата: Алексей Гринь от июля 23, 2009, 14:49
И такое ощущение, что программисты Сафари (как и ФФ) не слышали о free/delete.
В Опере то же самое. Видимо, это стандарт. Более того, закрытие одной вкладки из большого числа открытых занимает много времени (иногда очень много), но память не особенно высвобождается.
Название: Safari
Отправлено: Алексей Гринь от июля 23, 2009, 15:06
Может быть там недосборщик мусора свой, типа когда памяти сожрано уж слишком много, тогда только высвобождает, по расписанию. Тупая схема. Не люблю, когда программисты заботятся больше о себе, чем о конечных пользователях. Наверняка большая часть памяти сжирается из-за банальной лени.
Название: Safari
Отправлено: oort от июля 23, 2009, 15:10
Цитата: Алексей Гринь от июля 23, 2009, 14:49
ЦитироватьА sqlite3 vacuum на эти базы проводился?
Не понял значения слова "проводился" в этом контексте :)
for i in path-to-profile/*.sqlite; do sqlite3 $i vacuum; done

Под виндом другой синтаксис, которого я не помню, с таким же смыслом.
Название: Safari
Отправлено: myst от июля 23, 2009, 21:00
Цитата: Алексей Гринь от июля 23, 2009, 14:49
И такое ощущение, что программисты Сафари (как и ФФ) не слышали о free/delete.
В Objective-C не осилили уборщик мусора?
Название: Safari
Отправлено: myst от июля 23, 2009, 21:01
Цитата: Ванько Кацап от июля 23, 2009, 02:12
myst, ты случаем не устроился на подработку рекламировать Оперу? А мы-то думаем, кому ты там переводишь... ;)
Нет. Просто Опера реально лучший браузер. Чесно-чесно. :yes:
Название: Safari
Отправлено: myst от июля 23, 2009, 21:04
Цитата: Алексей Гринь от июля 23, 2009, 14:49
Так сложно просмотренные страницы кешировать где-то на жёстком диске, если уж так их жмёт кешировать?
Кто-то недавно хвалился гигабайтами памяти. :negozhe: Так вот, разработчики на таких и ориентируются. :) И это правильно, нечего памяти пустовать.
Название: Safari
Отправлено: myst от июля 23, 2009, 21:12
Цитата: Чайник777 от июля 23, 2009, 14:56
Более того, закрытие одной вкладки из большого числа открытых занимает много времени (иногда очень много), но память не особенно высвобождается.
Чиво?! У меня постоянно больше 100 вкладок открыто. Никаких тормозов на закрытии вкладок никогда не видел. Память Опера освобождает нормально, с небольшой задержкой в несколько секунд. Корзину закрытых вкладок очищать пробовали?
Название: Safari
Отправлено: myst от июля 23, 2009, 21:14
Цитата: Алексей Гринь от июля 23, 2009, 14:49
Я не понимаю, чего там такого выделять на 43 мегабайта (!!) на одну закладку?
Исходники WebKit'а открыты, бери да кури. ;) Если, конечно, это он «виноват». :)
Название: Safari
Отправлено: Лукас от июля 23, 2009, 21:26
Цитата: myst от июля 23, 2009, 21:01
Нет. Просто Опера реально лучший браузер. Чесно-чесно.
А мы таки поверили! :eat:
Название: Safari
Отправлено: Алексей Гринь от июля 23, 2009, 22:38
Цитата: 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'а открыты, бери да кури. ;) Если, конечно, это он «виноват». :)
Шарики за ролики не заедут осиливать?
Название: Safari
Отправлено: myst от июля 23, 2009, 23:16
Цитата: Алексей Гринь от июля 23, 2009, 22:38
И пофиг ведь шо у бедного пользователя на одну кнопочку выделяется по 10 мб, всё тормозит и виснет :(
Так ить не факт, что это гуй память съедает. Может, это движок такой прожорливый. :donno:
Название: Safari
Отправлено: Алексей Гринь от июля 25, 2009, 09:41
Блин, я всё надеюсь на умные алгоритмы в современных программах... Думал, Сафари много памяти жрёт, потому что там какая-нибудь циклическая синхронизированная сборка мусора, т.е. не каждый момент, а через некоторые определённые интервалы времени, чтобы освобождать не по козявке, а целыми блоками (например можно было бы активировать огда пользователь неактивен, т.е. отошёл или просто читает страницу - не заметно бы было; эти два таба наверно реально жрут по 60 мб, ппц. Если нет, то они полные идиоты, если эт всё закешированные образы просмотренныхз страниц печальным грузом висятs). Хрен с два. Оставил два таба на 6 часов... Как было 124 МБ, так и осталось (за 6 часов не сообразил неиспользуемое заархивировать...)
21 век, ага. Программы как будто пишутся с помощью лома.
Название: Safari
Отправлено: myst от июля 25, 2009, 18:57
Цитата: Алексей Гринь от июля 25, 2009, 09:41
21 век, ага. Программы как будто пишутся с помощью лома.
У тебя есть возможность написать свой браузер с циклической синхронизированной сборкой мусора, блекджеком и шлюхами. :)
Название: Safari
Отправлено: Алексей Гринь от июля 25, 2009, 19:11
Я не выёживаюсь, я говорю какбэ логичные вещи. 21 век на дворе, терабайты и гигагерцы, а программы в целом по производительности как лет двадцать назад. В Adobe Premier Pro случается жуткая утечка памяти при импорте видео, выведенного из Flash. Я ипу.
В попу такой быдлокодерский мир, пойду повешусь.
Название: Safari
Отправлено: wienski от июля 25, 2009, 19:49
Пропагандируйте ассемблер для архитектуры x86-64  :green:
Название: Safari
Отправлено: myst от июля 25, 2009, 20:33
Цитата: Алексей Гринь от июля 25, 2009, 19:11
В попу такой быдлокодерский мир, пойду повешусь.
Постой, не спеши! Скоро Common Lisp захватит мир, и наступит щастье. ;)
Название: Safari
Отправлено: Алексей Гринь от июля 28, 2009, 09:29
Шо-то у сафари частенько табы виснут (не реагируют на нажатия), и курсор меняет на забавный и начинает мерцать (это как было в версии 3.0, так и осталось в 4.0-ой).
Название: Safari
Отправлено: myst от июля 28, 2009, 17:18
Цитата: Алексей Гринь от июля 28, 2009, 09:29
Шо-то у сафари частенько табы виснут (не реагируют на нажатия), и курсор меняет на забавный и начинает мерцать (это как было в версии 3.0, так и осталось в 4.0-ой).
Кошерный Объектный Си не помог? ;-)
Название: Safari
Отправлено: Алексей Гринь от июля 28, 2009, 17:29
Язык-то тут причём? Дело в кривоватом порте библиотек CoreFoundation с Mac OS на Windows.
Название: Safari
Отправлено: myst от июля 28, 2009, 17:50
Цитата: Алексей Гринь от июля 28, 2009, 17:29
Язык-то тут причём? Дело в кривоватом порте библиотек CoreFoundation с Mac OS на Windows.
Ага, как кривое поделие на С++, так язык виноват, а как на Объектном Си, так... ;)
Название: Safari
Отправлено: Алексей Гринь от июля 28, 2009, 19:16
Цитата: myst от июля 28, 2009, 17:50
Ага, как кривое поделие на С++, так язык виноват, а как на Объектном Си, так... ;)
Э? У Си++ убогий синтаксис и убогая семантика. Реализации шустрые, но медленнее, чем в Си. В объектном Си хороший синтаксис и хорошая семантика. Но так как там все методы виртуальные, реализации Объектного Си в основном всегда медленнее С++. Я это знаю и не отрицаю.
Но при чём здесь вообще это? Я говорю, что конкретно библиотеки, которые эмулируют АПИ Mac OS конкретно под Windows кривые в плане GDI. При чём здесь вообще реализиции конкретныз языков?
Почуй разницу:
  1) в gcc-реализации С++ стандартные конструкторы медленнее, чем то же средствами С.
  2) в порте-реализации CoreFoundation под WinApi32, скомпиленнной gcc, есть некоторые баги.
Первое это реализация стандарта языка, второе - реализация сторонней частной библиотеки.
Название: Safari
Отправлено: myst от июля 28, 2009, 20:31
Цитата: Алексей Гринь от июля 28, 2009, 19:16
1) в gcc-реализации С++ стандартные конструкторы медленнее, чем то же средствами С.
Ты мне исходники этого теста так и не дал. Так шта пока не верю. :smoke:
Название: Safari
Отправлено: myst от июля 28, 2009, 20:34
Цитата: Алексей Гринь от июля 28, 2009, 19:16
У Си++ убогий синтаксис и убогая семантика.
:o Тогда ты должен не любить и синтаксис Си, так как именно его синтаксис составляет основу синтаксиса C++.
Название: Safari
Отправлено: Алексей Гринь от июля 28, 2009, 20:42
Цитата: 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++.
Я имел в виду убогий синтаксис той фишки, которую они представляют как главное достоинство, — ООПа. Синтаксис ООПа кривой по сравнению с Обж-С (как и семантика). Синтаксис же собсно Си не критикуем, ибо классика :)
Название: Safari
Отправлено: Алексей Гринь от июля 28, 2009, 20:46
А по теме: я-таки перелез обратно на ФФ.
Сафари надоел тремя вещами:

1) глючит курсор, самопроизвольно меняется на другой и мерцает
2) зависают табы
3) половина юникода показывается квадратами, совсем не упёрлось думать, как это порешить :)
4) ну и ещё по мелочам, типа нет списка только что закрытых табов, а История показывает какое-то невразумительное пустое чёрное окно...
5) Да и Top Sites оказался бесполезен.
Название: Safari
Отправлено: Хворост от июля 28, 2009, 20:48
Цитата: Алексей Гринь от июля 28, 2009, 20:46
А по теме: я-таки перелез обратно на ФФ.
Поздравляю! :)
Название: Safari
Отправлено: myst от июля 28, 2009, 23:26
Цитата: Алексей Гринь от июля 28, 2009, 20:42
Я же давал где-то
Ну что я тебе могу сказать? Проблема эта даже не в самом gcc, а в библиотеке. Язык тут вообще не при чём. В VC С++-вариант даже быстрее (на 100 млн. итераций разница больше секунды на моём процессоре). Так-то.
Переопредели new и delete, чтобы они просто вызывали malloc и free соответственно, и результаты станут одинаковыми.
Вообще, тест отдельной реализации — это именно тест реализации, а не языка. Язык не может быть быстрым или медленным, нет у него такого качества.
Название: Safari
Отправлено: Алексей Гринь от июля 29, 2009, 00:18
Цитата: myst от июля 28, 2009, 23:26
Язык не может быть быстрым или медленным, нет у него такого качества.
Есть, скорость зависит от концепции языка. Если все методы делать виртуальными (то бишь на каждый вызов, даже если нету потомков, будет проводиться диспатчинг в пару лишних опкодов), как это в смоллтоке или обж-с, то любая реализация некоего класса А на таких языках гарантированно будет медленнее, чем то же, но средствами с++, в котором методам разрешено быть невиртуальными.
Если в концепции языка нету такой штуки, как объект на стеке (как например в жабе), то и в данном случае в практически любой реализации ява-машины гарантированно оно будет медленнее, чем в с++ (слыхал, якобы, последние явы умеют распозновать что к чему и выделять объект на стеке, но хз хз).
Если в концепции усмотрено прототипирование, то тоже всё будет гарантированно медленнее, чем в языке без прототипирования.
Если в концепции языка усмотрен дак-тайпинг, то бишь проверка типов в рантайме, то оно гарантированно будет медленнее, чем в языках со статической типизацией.
Если в концепции есть такие вещи как интроспеция самого себя в любой момент времени с вытекающими, где неминуема интерпретация, то оно тоже будет гарантированно медленнее, чем без.
Концепция языка во многом задаёт скорость выполнения по сравнению с другими концепциями. Поэтому можно сравнивать.

ЦитироватьПроблема эта даже не в самом gcc, а в библиотеке. Язык тут вообще не при чём.
Эээ. Вообще-то стандарт задаёт набор библиотек. Без них язык не язык. Они есть часть языка. Если есть кривость в реализации стандартной либы, значит это кривость в реализации языка вообще.
Название: Safari
Отправлено: myst от июля 29, 2009, 00:22
Цитата: Алексей Гринь от июля 29, 2009, 00:18
Если все методы делать виртуальными (то бишь на каждый вызов, даже если нету потомков, будет проводиться диспатчинг в пару лишних опкодов), как это в смоллтоке или обж-с, то любая реализация некоего класса А на таких языках гарантированно будет медленнее, чем то же, но средствами с++, в котором методам разрешено быть невиртуальными.
Ничего подобного. Из того, что текущие реализации на текущем железе медленные, не следует принципиальная медленность языка.
Название: Safari
Отправлено: myst от июля 29, 2009, 00:25
Цитата: Алексей Гринь от июля 29, 2009, 00:18
Если есть кривость в реализации стандартной либы, значит это кривость в реализации языка вообще.
Что значит вообще? :o
Название: Safari
Отправлено: Алексей Гринь от июля 29, 2009, 00:26
Но так-то mingw-gcc переадресует все malloc'ы и free'ы к таковым в msvcrt.dll, которые сами по себе являются обёртками над winapi'шными функциями типа GlobalAlloc, LocalAlloc и проч., поэтому не понятно в принципе почему VC++ вариант быстрее, ведь он обращается к тем же самым системным функциям.
Название: Safari
Отправлено: Алексей Гринь от июля 29, 2009, 00:29
Цитата: myst от июля 29, 2009, 00:22
Ничего подобного. Из того, что текущие реализации на текущем железе медленные, не следует принципиальная медленность языка.
Так медлнность понятие относительное! Если реализация языка А на одном железе медленнее реализации языка Б на том же самом — значит, реализация языка А медленная. Я что, при сравнении запускаю Си++ на первом пне, а Си-вариант на Интел Коре Ту Квад? Делать нечего :)

Цитата: myst от июля 29, 2009, 00:25
Что значит вообще? :o
Стандартная библиотека = часть языка.
Если есть баг/тормоза в стандартной библиотеке — значит, это баг/тормоза в языке (точнее в его реализации)
Название: Safari
Отправлено: myst от июля 29, 2009, 00:33
Цитата: Алексей Гринь от июля 29, 2009, 00:26
Но так-то mingw-gcc переадресует все malloc'ы и free'ы к таковым в mscvrt.dll, которые сами по себе являются обёртками над winapi'шными функциями типа GlobalAlloc, LocalAlloc и проч., поэтому не понятно в принципе почему VC++ вариант быстрее, ведь он обращается к тем же самым системным функциям.
Ты не понял, у меня сишная версия чуть медленнее сплюплюсной, если собирать микрософтовскими инструментами. GCC у меня из cygwin'а вообще. Сравнивать скорость cygwin'овских со скоростью «родных» программ смысла нет.
Название: Safari
Отправлено: myst от июля 29, 2009, 00:35
Почему медленнее? Надо лезть в дизассемблер и смотреть. Чудес, ясное дело, не предвидится. :)
Название: Safari
Отправлено: Алексей Гринь от июля 29, 2009, 00:38
Цитата: myst от июля 29, 2009, 00:33
GCC у меня из cygwin'а вообще.
Ужос...

Цитата: myst от июля 29, 2009, 00:33
Сравнивать скорость cygwin'овских со скоростью «родных» программ смысла нет.
А я-то сравниваю mingw-овские; тебе смысла нет, мне — есть :)
Название: Safari
Отправлено: myst от июля 29, 2009, 00:45

.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 медленнее из-за ветвления. Я же говорил, что никаких чудес. :)
Название: Safari
Отправлено: Алексей Гринь от июля 29, 2009, 00:48
Вообще оптимизаторы любят конструкторы инлайнить. Видимо, gс++ не инлайнил у меня...
Название: Safari
Отправлено: myst от июля 29, 2009, 00:50
Цитата: Алексей Гринь от июля 29, 2009, 00:38
А я-то сравниваю mingw-овские; тебе смысла нет, мне — есть :)
Ты опять не понял, я сравнивал варианты, собранные одними инструментами. Разница в пользу Си есть только у gcc из-за реализации new в libstdc++, ну и в delete есть лишнее ветвление (парни ниасилили стандарт, или реализация free была баговая :)).
Название: Safari
Отправлено: myst от июля 29, 2009, 00:53
Цитата: Алексей Гринь от июля 29, 2009, 00:48
Видимо, gс++ не инлайнил у меня...
Если мне память не изменяет, определение CPLala(int x, int y): x(x), y(y) { } всегда inline. :what:
Название: Safari
Отправлено: Алексей Гринь от июля 29, 2009, 00:55
Таки короче надо популяризировать идеи Vala :)
Название: Safari
Отправлено: myst от июля 29, 2009, 00:55
Цитата: Алексей Гринь от июля 29, 2009, 00:38
Ужос...
Ну почему ужос? Да, он педальный, но очень полезный. Версия 1.7 просто замечательная, даром что бета ещё. :)
Название: Safari
Отправлено: myst от июля 29, 2009, 00:57
Цитата: Алексей Гринь от июля 29, 2009, 00:55
Таки короче надо популяризировать Vala :)
Они его допилили? Помню, гноммеры раскидывали распальцовки на ЛОР'е, но тогда эта штука была сыровата.
Название: Safari
Отправлено: Алексей Гринь от июля 29, 2009, 01:09
Цитата: 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 :)
Название: Safari
Отправлено: myst от июля 29, 2009, 01:14
Цитата: Алексей Гринь от июля 29, 2009, 01:09
Я хочу C#-/Java-подобный простенький язык, но шоб без огромного рантайма (а ля gcj'овский в 3 мегабайта, аха), без сборщика мусора, без зависимости от непонятных кривоватых динамически-типизированных либ типа GObject.
Да, нету щастья. Я, помню, искал-искал, но так и не нашёл. Нужна ось, у которой юзерленд из рантайма той же Жабы, Оберона или CL растёт, и будет всё OK. Но все велосипеды придётся переизобретать, особенно в случае Оберона. :)