The OpenNET Project / Index page

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



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

Оглавление

Выпуск операционной системы Redox OS 0.6, написанной на языке Rust , opennews (??), 26-Дек-20, (0) [смотреть все]

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


179. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +/
Сообщение от анонн (ok), 26-Дек-20, 21:15 
> Скомпилил хелоу ворлд, охренел - экзешник 11 мегабайт.
> Ещё компилятор думол полторы секунды, а gcc и g++ компилят моментально.
> Глянул на руки - кривоваты.
> Как так?

Кто ж его знает?


$ cat hello_world.rs && time  rustc -O hello_world.rs &&  wc -c ./hello_world
fn main() {                                                                    
    println!("Hello Wrot!");
}
rustc -O hello_world.rs  0,26s user 0,11s system 140% cpu 0,262 total
  392000 ./hello_world

cat hello_world.rs && time rustc -C prefer-dynamic -O -C link-args=-s  hello_world.rs && wc -c ./hello_world
fn main() {
    println!("Hello Wrot!");
}

$ rustc -C prefer-dynamic -O -C link-args=-s hello_world.rs  0,19s user 0,11s system 137% cpu 0,213 total
    6592 ./hello_world

$ time gcc -O2 hello.c
gcc -O2 hello.c  0,09s user 0,03s system 87% cpu 0,138 total

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

186. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +/
Сообщение от Wilem82 (?), 26-Дек-20, 22:43 
Gcc меньше проверок делает, конечно он быстрее. Чем меньше программа делает, тем быстрее она работает.

Тоже самое и с размером - бинари раста толще потому, что там больше кода который даёт больше фич, чем hello world на сях. Разматывание стека на панике с выводом где в коде была ошибка (типа жавовских стек трейсов), и тд. Кроме того, он содердит растовский libstd, в то время как сишные программы по-умолчанию не содержат, а линкуются с libc.

Всё это можно отключить и сделать бинарь такого же размера, как на сях. Подробнее тут https://github.com/johnthagen/min-sized-rust

Но лучше всего почитать блог где чел пишет операционку с нуля на расте, где всё это как раз отключается и показывается чё к чему: https://os.phil-opp.com/

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

187. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +1 +/
Сообщение от анонн (ok), 26-Дек-20, 22:50 
> Gcc меньше проверок делает, конечно он быстрее. Чем меньше программа делает, тем
> быстрее она работает.
> Тоже самое и с размером - бинари раста толще потому, что

Комментарий не читай, сразу бодро отвечай?


>> 11 мегабайт.
>> полторы секунды,
> $ rustc -C prefer-dynamic -O -C link-args=-s hello_world.rs  0,19s user 0,11s system 137% cpu 0,213 total
>    6592 ./hello_world
> $ time gcc -O2 hello.c
> gcc -O2 hello.c  0,09s user 0,03s system 87% cpu 0,138 total

Выжимка:
___
> 6592 (6.5KB) ./hello_world (rust)
> rustc 0,19s user 0,11s system 137% cpu 0,213 total
> gcc 0,09s user 0,03s system 87% cpu 0,138 total

---

В общем, вышеотписавшийся в 176 анонимный "критик" выставил себя еще тем "знатоком" ;)

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

290. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +/
Сообщение от Аноним (290), 27-Дек-20, 19:16 
С этим понятно. Компилятору нужно правильные опции задавать. А как быть с перенесёнными с плюсов либами? Их в расте можно заметить по вызову типа С_function_name.unwrap(). Так напримёр все функции OpenGL на расте вызываются.
Как это вообще работает? Происходят ли какие-то потери в производительности?
Ответить | Правка | Наверх | Cообщить модератору

338. "Выпуск операционной системы Redox OS 0.6, написанной на язык..."  +1 +/
Сообщение от Wilem82 (?), 28-Дек-20, 15:07 
> типа С_function_name.unwrap().

Скорее так:

    unsafe { C_function_name() };

unwrap() - это метод растовских типов std::result::Result и std::option::Option, сишные функции его не возвращают.

> Как это вообще работает? Происходят ли какие-то потери в производительности?

Никаких потерь. Просто вызов функции, как и в Си.

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

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

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




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

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