The OpenNET Project / Index page

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



"Первый официальный выпуск rav1e, кодировщика AV1 на языке Rust "
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "Первый официальный выпуск rav1e, кодировщика AV1 на языке Ru..." +/
Сообщение от анонн (ok), 12-Ноя-19, 19:43 
> Всё равно же много.

Учитывая, что libc вообще-то рантайм библиотека для этой самой сишечки, а не раста, то нормально.

> У меня в Виндовс хелловорлд на Сишечке, собранный посредством TCC (Tiny C
> Compiler by Fabrice Bellard), весит 2048 байт.

Ну, хелловорлд я вам и в 20-100 байтов запулить могу, если брать старые версии виндовс. А PE32 в винде ЕМНИП ограничен минимально прожевываемым самим PE-загрузчиком размером выравнивавия секции (в смысле: section alignment) -- т.е. если без слишном уж грязных хаков, то 0.5-2КБ, зависит от версии винды и от дырявости моей памяти ;)

> TCC, конечно, не мейнстрим вроде GCC, но пусть будет убойным примером ради высшей справедливости.

А убоен он в первую очередь беспощадной бессмысленность такого примера, потому что все же, в конечном итоге интересны совсем не хелловорды? ;)
Ну и:


% cat hw.c && gcc -Os -s hw.c -o hw && ll hw
#include <stdio.h>
int main(void) {
    puts("Hello World!");
    return 0;
}
-rwxr-x---  1 анонн  wheel   4,8K 12 Nov. 21:00 hw

% gcc --version      
gcc (FreeBSD Ports Collection) 9.2.0

> Если собирать обычным GCC (была использована версия 4.7.2), то получается 34816 байт
> статически слинкованного сабжа.

В винде - статистически слинкованный? Я что-то пропустил и PE-бинарник уже "годен" (valid) без привязки к kernel32.dll/user32.dll (и они точно-точно не прилинковываются ;) )?

Если слинковать статистически, это выглядит примерно вот так:


gcc -O2 -s -static hw.c -o hw && ll hw
-rwxr-x---  1 анонн wheel   553K 12 Nov. 21:09 hw
ldd hw
ldd: hw: not a dynamic ELF executable

Сейчас возможно набегут особо поклоннистые поклонники альтератив типа musl и заявят, что я ламо, протому что получить можно в 10 раз меньший бинарник, если использовать прямые руки и т.д. и т.п. - но вообще-то это не принципиально.

В расте тоже можно немного поизвращаться с (расто-std) библиотеками:
https://github.com/johnthagen/min-sized-rust


ldd target/release/min-sized-no_std
target/release/min-sized-no_std:
    libc.so.7 => /lib/libc.so.7 (0x800248000)
-rwxr-x---  2 анонн  wheel    15K 12 Nov. 21:25 target/release/min-sized-no_std

Но смысл сего действа все же ускользает от меня (сравнение размера хелловорда ради сравнения размеров хелловордов?)
Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Первый официальный выпуск rav1e, кодировщика AV1 на языке Rust , opennews, 09-Ноя-19, 22:06  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



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

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