Re[26]: СИСТЕМНОСТЬ
От: Курилка Россия http://kirya.narod.ru/
Дата: 19.01.05 13:26
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

<skipped>

И что дают эти цифры? Ну толку от того, что какую-то операционку запихают в 10 кило? Если всё равно её юзать реально никто не будет, в отличие от тех же линуха и виндовза, ну уж про поддержку разного железа в аосе твоём молчу...
Re[26]: СИСТЕМНОСТЬ
От: Cyberax Марс  
Дата: 19.01.05 13:27
Оценка: +2
Сергей Губанов пишет:

>

>Aos subsystem sizes.
>
>Subsystem Var Const Code Lines
>Kernel 18088 1296 48434 7210
>Service support 164 1620 30001 2532
>File system 96 1928 55462 4624
>User interface 128 792 20468 2204
>Network 1512 3368 62126 6200
>Oberon for Aos 2396 3332 112893 8667
>Total 22384 12336 329384 31437
>
> Цитата взята из докторской диссертации Питера Мюллера — создателя Aos
> (http://www.cs.inf.ethz.ch/~muller/
> <http://www.cs.inf.ethz.ch/%7Emuller/&gt;).
> Вот что значит грамотный дизайн!!! А Вы все шаблоны да генерики, да не
> нужны они — головой надо думать...

Если сравнивать с аналогичной системой — то нужно смотреть на QNX. Там в
микроядро в 20Кб вместилось управление процессами и защита памяти.
Причем системы на QNXе работают десятилетиями без перезагрузок — такой
он стабильный.

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[27]: СИСТЕМНОСТЬ
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 19.01.05 13:32
Оценка:
Здравствуйте, Cyberax, Вы писали:

C> В _30_ раз быстрее Линукса? А защита памяти там есть?


Именно там она, в отличие от систем написанных на Си, как раз-то и есть!
Re[28]: СИСТЕМНОСТЬ
От: Cyberax Марс  
Дата: 19.01.05 13:43
Оценка: 35 (7) +1
Сергей Губанов пишет:

> C> В _30_ раз быстрее Линукса? А защита памяти там есть?

> Именно там она, в отличие от систем написанных на Си, как раз-то и есть!

Нет, нету там защиты памяти. Если "внешняя библиотека", которые из-за
убогости языка нужны очень часто, запишет что-то "не туда" — *все* упадет.

Кстати, посмотрел XDS:
1. Тестируем modулу:
|Please, wait about 60 seconds Dhrystone time for 4000000 passes = 1
This machine benchmarks at 4000000 dhrystones/second |

2. Тестируем C-версию (отладочный режим, без оптимизаций, компилятор
MSVC 8 Beta 1):
|D:\XDS\SAMPLES\BENCH\BENCH\BENCH\Debug>BENCH.exe Please, wait about 60
seconds Dhrystone time for 4000000 passes = 4 This machine benchmarks at
1000000 dhrystones/second |

Боже мой! Разница в _4_ раза! Наверное все-таки С — это полный отстой.
Но смотрим дальше:

3. Тестируем C-версию (*релизный* режим, максимальные оптимизации,
компилятор MSVC 8 Beta 1):
|D:\XDS\SAMPLES\BENCH\BENCH\BENCH\Release>BENCH.exe Please, wait about
60 seconds Dhrystone time for 4000000 passes = 0 |
И в этом месте программа падает с ошибкой деления на 0. После правки
теста получаем результат 12000000 попугайчиков.

Так что это XDS проигрывает в *3 раза* по скорости. И это я еще не
использовал Profile-Guided Optimization и не искал "узкие места" в
тесте. Да, кстати, размер исполняемого файла XDS: 53760 байт, а
скомпилированного Студией Сшника: 52463 байт.

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[29]: СИСТЕМНОСТЬ
От: AVC Россия  
Дата: 19.01.05 15:34
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Нет, нету там защиты памяти. Если "внешняя библиотека", которые из-за

C>убогости языка нужны очень часто, запишет что-то "не туда" — *все* упадет.

Интересно, как это внешняя библиотека получит доступ к объектам ядра?

C>Кстати, посмотрел XDS:


<...>

C>3. Тестируем C-версию (*релизный* режим, максимальные оптимизации,

C>компилятор MSVC 8 Beta 1):
C>|D:\XDS\SAMPLES\BENCH\BENCH\BENCH\Release>BENCH.exe Please, wait about
C>60 seconds Dhrystone time for 4000000 passes = 0 |
C>И в этом месте программа падает с ошибкой деления на 0. После правки
C>теста получаем результат 12000000 попугайчиков.
C>Так что это XDS проигрывает в *3 раза* по скорости. И это я еще не
C>использовал Profile-Guided Optimization и не искал "узкие места" в
C>тесте. Да, кстати, размер исполняемого файла XDS: 53760 байт, а
C>скомпилированного Студией Сшника: 52463 байт.

И где же это такие попугайчики у Вас летают?
Я, чтобы избежать каких-либо накладок (скажем, с измерением времени), сразу задал и для Си, и для Модулы 40,000,000 циклов.

Для Си результат с максимальной оптимизацией по скорости: 2,666,666.
Без оптимизации: 2,222,222.
Для Модулы: 8,000,000.

Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.

Хоар
Re[30]: СИСТЕМНОСТЬ
От: Cyberax Марс  
Дата: 19.01.05 15:41
Оценка:
AVC пишет:

> И где же это такие попугайчики у Вас летают?


MSVC 8 Beta 1, я вроде написал.

> Я, чтобы избежать каких-либо накладок (скажем, с измерением времени),

> сразу задал и для Си, и для Модулы 40,000,000 циклов.

*Какой* компилятор и *какие* ключи? Это важно.

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[31]: СИСТЕМНОСТЬ
От: AVC Россия  
Дата: 19.01.05 15:55
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>*Какой* компилятор и *какие* ключи? Это важно.


Много еще что важно...
Компилятор: MSVC 6. (Т.е. примерно ровесник компилятора XDS, другой версии MSVC у меня сейчас под рукой нет.)
Ключи, если Вы помните, я предложил выбрать Вам.
Я использовал Project settings: maximize speed.

Но существует одно качество, которое нельзя купить, — это надежность. Цена надежности — погоня за крайней простотой. Это цена, которую очень богатому труднее всего заплатить.

Хоар
Re[26]: СИСТЕМНОСТЬ
От: alexeiz  
Дата: 21.01.05 10:38
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Компилятор Oberon for Aos (в Aos BlueBottle, та самая в которой минимальный системный вызов в 30 раз быстрее чем в Linux), ...


Кстати, в это не так уж и трудно поверить. Системный вызов достаточно накладен. Параметры на валидность нужно проверить, данные из user mode в kernel mode скопировать, режим переключить. Так как в BlueBottle ничего подобного нет, то не стоит удивляться, что данная фича в нём быстрее.
Re[5]: Оберон vs все остальное
От: _Obelisk_ Россия http://www.ibm.com
Дата: 21.01.05 13:17
Оценка: +1
Здравствуйте, Павел Кузнецов, Вы писали:

ПК>jazzer,


>> СГ>На Component Pascal это элементарно:

>> СГ>
>> СГ>TYPE
>> СГ>  Action = PROCEDURE (a: Action): Action;
>> СГ>


>> Если не секрет, зачем это нужно? Какую задачу такая штука решает?


ПК>Построение конечного автомата, в котором действие возвращает следующее состояние. Предвосхищая продолжение: да, согласен, такое решние не облокотилось при наличии множества других вариантов, доступных в т.ч. и из C++.


При реализации автомата нет необходимости в функции, принимающей указатель на саму себя. Там нужен указатель на функцию возвращающию указатель на саму себя. А это достаточно легко моделируется.



Душа обязана трудиться! (с) Н.Заболоцкий.
Re[27]: СИСТЕМНОСТЬ
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 21.01.05 14:27
Оценка: :)))
Здравствуйте, alexeiz, Вы писали:

A>Здравствуйте, Сергей Губанов, Вы писали:


СГ>>Компилятор Oberon for Aos (в Aos BlueBottle, та самая в которой минимальный системный вызов в 30 раз быстрее чем в Linux), ...


A>Кстати, в это не так уж и трудно поверить. Системный вызов достаточно накладен. Параметры на валидность нужно проверить, данные из user mode в kernel mode скопировать, режим переключить. Так как в BlueBottle ничего подобного нет, то не стоит удивляться, что данная фича в нём быстрее.


3D игры надо под нее писать. Все будет просто летать.
Re[28]: СИСТЕМНОСТЬ
От: Курилка Россия http://kirya.narod.ru/
Дата: 21.01.05 14:30
Оценка: :)
Здравствуйте, Сергей Губанов, Вы писали:

СГ>3D игры надо под нее писать. Все будет просто летать.


Со стола в окно
Re: Оберон vs С#
От: Silver_s Ниоткуда  
Дата: 21.01.05 16:43
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:


СГ>Загадка. Слабо на Си или Си++ написать тип функции принимающей в качестве аргумента и возвращающей переменную ее собственного типа?


СГ>На Component Pascal это элементарно:

СГ>
СГ>TYPE
СГ>  Action = PROCEDURE (a: Action): Action;
СГ>


Дык вот же, то же самое на C#

delegate void Action(Action md);
Re[2]: Оберон vs С#
От: Павел Кузнецов  
Дата: 21.01.05 16:48
Оценка:
Silver_s,

> СГ>
> СГ>TYPE
> СГ>  Action = PROCEDURE (a: Action): Action;
> СГ>

>
> Дык вот же, то же самое на C#
>
>
> delegate void Action(Action md);
>


Не то же самое: второй вариант возвращает void, в то время как первый — значение своего же типа.
Posted via RSDN NNTP Server 1.9
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[2]: Оберон vs С#
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 21.01.05 16:54
Оценка:
Здравствуйте, Silver_s, Вы писали:

S_>Здравствуйте, Сергей Губанов, Вы писали:



СГ>>Загадка. Слабо на Си или Си++ написать тип функции принимающей в качестве аргумента и возвращающей переменную ее собственного типа?


СГ>>На Component Pascal это элементарно:

СГ>>
СГ>>TYPE
СГ>>  Action = PROCEDURE (a: Action): Action; // Это функция !!!! 
СГ>>


S_> Дык вот же, то же самое на C#


S_>
S_>delegate void Action(Action md);
S_>
и солнце б утром не вставало, когда бы не было меня
Re[3]: Оберон vs С#
От: Silver_s Ниоткуда  
Дата: 21.01.05 17:02
Оценка: 1 (1)
Здравствуйте, Павел Кузнецов, Вы писали:

ПК>Не то же самое: второй вариант возвращает void, в то время как первый — значение своего же типа.


Ну ладно, сами напросились, пусть будет так


public delegate Action Action(Action md);
class Insane
{
    Action Action(Action act)
    {
        act(act);
        return act;
    }
    public void Call()
    {
        Action(new Action(Action));
    }
}


Все замечательно работает.
Вещь несомненно довольно полезная в хозяйстве.
Re[4]: Оберон vs С#
От: Silver_s Ниоткуда  
Дата: 21.01.05 17:11
Оценка: :))) :))) :))
А может лучше так? C# такое на ура проглотит, главное не окосеть самому.


public delegate Action Action(Action Action);
class Insane
{
    Action Action(Action Action)
    {
        Action(Action);
        return Action;
    }
    public void Call()
    {
        Action(new Action(Action));
    }
}
Re: Оберон vs все остальное!!! Действительно, фанатик...
От: Borisman2 Киргизия  
Дата: 23.01.05 07:32
Оценка: 1 (1) +1
Здравствуйте, Сергей Губанов

Однако, Ваше vs. все остальное звучит крайне фанатично.
Краткий ответ: На С/С++ ТАКОЕ писать невозможно и НЕ НАДО.

Полный ответ:На С/С++ ТАКОЕ писать НЕ НАДО, потому что C/C++ не являются строго типизированными функциональными языками, как скажем Hackell с его системой типов Х.-Милнера. В этом сила и слабость С/C++. Спросите программистов С, чем им нравится С? Они ответят — гибкий язык, можно делать многие вещи, доступные только ассемблеру. И вовсе незачем из них пытаться строить функциональные языки со строгой системой типов.

Каждый язык — это определенная культура, свой, самобытный взгляд на вещи. Система догм, если угодно. И не надо пытаться в эту систему догм втиснуть еретические веяния. Интересуют еретические веяния ? Выберите другой язык.

Ваш Оберон так же не является самым лучшим с любых позиций. Есть целая куча вещей (гляньте на тот же Лисп!), которые на Обероне сделать практически невозможно.

В институте программистам на первом курсе подробно объясняют, что НЕТ ЛУЧШЕГО ЯЗЫКА ПРОГРАММИРОВАНИЯ. Есть просто набор языков, каждый со своими плюсами и минусами, наша же работа — выбрать язык, наиболее хорошо подходящий под задачу. Лучшее, что можно сделать — это наладить СВЯЗИ, мосты между языками, как это стараются делать, например, в Perl (Inline module).

Ну сколько можно твердить прописные истины!
Re[2]: Оберон vs все остальное!!! Действительно, фанатик...
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 24.01.05 08:43
Оценка: :))
Здравствуйте, Borisman2, Вы писали:

B>Однако, Ваше vs. все остальное звучит крайне фанатично.

B>Ну сколько можно твердить прописные истины!

А я ТУ ветку форума не начинал и ТАКОЕ название не давал. Меня подставили!

Посмотрите на заметку внизу того сообщения:

21.01.05 11:51: Ветка выделена из темы Слабо? — AndrewVK

Re[11]: Оберон vs все остальное
От: Sergey__ Россия  
Дата: 24.01.05 15:38
Оценка: +1
Здравствуйте, Сергей Губанов, Вы писали:

СГ> а есть люди оставшиеся на Delphi 6 (поскольку в семерке для них ничего нового не было а QReports был заменен на Rave)

вообще-то
для тех кто ищет это чудо — QReports (это при том что есть FastReport и AfalinaSoft XL Report)
в Delphi 7 и никак не может его найти :
достаточно в папочке с замаскированным названием Delphi7\Demos\Quickrpt
открыть файл QReport_README.txt
и прочесть ... что QReports по-прежнему с нами !!!
Sergey
Re: Оберон vs все остальное
От: Borisman2 Киргизия  
Дата: 27.01.05 05:22
Оценка:
Господа! Дискуссия по многозадачности и убиваемости процессов, мне кажется, начинает сводиться к следующему вопросу:

1) Что будет, если я попытаюсь выстрелить себе в ногу при помощи кода вида:

while(True) {
list.append(1)
}
(ну или как это будет выглядеть на Оберон-2)


Однако, странная постановка вопроса! Правильный ответ — конечно, отстрелите себе ногу!!! И результат мало зависит от конкретной ОС или там от сборщика мусора.

Тем не менее. Когда апологеты Оберона отвечают, что надо УДАЛИТЬ АКТИВНЫЙ ОБЪЕКТ, который выполняет данный код, противники (иногда) начинают измываться — "эта мол что, оберон мой объект прибил??? Ай, нехорошо...." Вы уж определитесь, что вам нужно. И замените термин "процесс" на термин "активный объект"


Я лично считаю, что софтварная защита vs хардварная защита — вопрос также немного странный, ибо то, что для одного программиста — software, для другого может оказаться самым что ни на есть hardware!!! Вспомним ,хотя бы, про микрокод в процессорах. Поэтому возможность софтварной защиты имеет право на жизнь, хотя, конечно, накладывает очень жесткие ограничения на используемые инструментальные средства (все пишем на Оберон-2), что может оказаться совсем неприемлемо в ряде случаев (например, операционные системы общего назначения).
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.