
Дед Пегас
25.08.2017
11:50:57
64 гига хватит.
Операционка и прилажуха поживут в кэшеипооца
Кэше проца*

Google

Ioann V
25.08.2017
12:13:27
Я не хочу уходить в дискусс, но в данном случае все зависит от page fault и т.п А на счет того что я не хочу в дискусс, потому что проще всего этот момент погуглить и почитать что к чему - я серьезно, холиваров на эту тему полно.
https://lemire.me/blog/2012/06/26/which-is-fastest-read-fread-ifstream-or-mmap/

Alexander
25.08.2017
12:18:15
template <typename Type, Type ... Args> strcut Foo{};
так можно сделать?

Berkus
25.08.2017
12:27:30

Alexander
25.08.2017
12:29:07
Эй, гуру С++, так реально сделать?
template <typename Type, Type ... Args> strcut Foo{};

Berkus
25.08.2017
12:30:36

Pavel
25.08.2017
12:31:45

Berkus
25.08.2017
12:32:36

Pavel
25.08.2017
12:33:43
а, нуда. один же тип надо

Google

Alexander
25.08.2017
12:34:24
template <typename Type, Type ... Args> struct Foo{};
я хочу сделать что-то такое:
Foo<int,2,3,4,5>

Pavel
25.08.2017
12:36:04
ну, всё же должно работать ровно как ты написал

Tom
25.08.2017
12:37:16

Alexander
25.08.2017
12:37:35
так, окей. Я вижу, что работает. Понимаю, что работает
но у меня не работает.... ладно, пойду дальше копать

Tom
25.08.2017
12:38:15

Alexander
25.08.2017
12:38:30
сейчас, 1 момент. Кое-что проверю
https://godbolt.org/g/NGu7kc

Antony
25.08.2017
12:39:49
https://lemire.me/blog/2012/06/26/which-is-fastest-read-fread-ifstream-or-mmap/
Забавно, у чувака результаты "Conclusion: For sequential access, both fread and ifstream are equally fast. Unbuffered IO (read) is slower, as expected. Memory mapping is not beneficial."
А у меня mmap жог и на 10% работал быстрее, вот на таком бенчмарке https://github.com/apolukhin/Boost-Cookbook/blob/second_edition/Chapter11/08_reading_files/main.cpp

Alexander
25.08.2017
12:41:01
да нет, всё ок.

Antony
25.08.2017
12:41:16

Tom
25.08.2017
12:41:45
Потому как иначе class вроде должен быть

Alexander
25.08.2017
12:42:11

Antony
25.08.2017
12:43:31

Ilia
25.08.2017
12:43:41

Alexander
25.08.2017
12:43:50

Ilia
25.08.2017
12:44:19
Но ЗНАТАКИ говорят — ОНО ЖЕ Ф ЯДРЕ, ОНО КРУТОЕ, ОНО БЫСРТЕЕЕ... почему ?

Google

Alexander
25.08.2017
12:44:45
если замапить кусок и потом с ним работать - да, быстрее. А если просто читать... какие-то неведомые мне вещи начинают работать что ли

Antony
25.08.2017
12:44:56

Ilia
25.08.2017
12:45:23
Ну, может оно читает большими блоками (не такими уж и), может оно ЛЕНИВО ЗАГРУЖАЕТ СТРАНИЦЫ — согласен. Но вот БЫСТРЕЕ с какого перепугу оно будет — совсем не ясно

Pavel
25.08.2017
12:46:42
вы всё ещё про файлы? https://stackoverflow.com/a/17925143/864782

Ilia
25.08.2017
12:46:46
скорость чтения с диска — десятки микросекунд, памяти — нано.

Matwey
25.08.2017
12:47:48

Ilia
25.08.2017
12:48:14
Ну да, если там не SSD стоит, а ленточный накопитель, то ДАААА!

Дед Пегас
25.08.2017
12:48:40

Ilia
25.08.2017
12:50:35

Berkus
25.08.2017
12:51:31
mmap дает выигрыш при random seek read; при последовательном - выгода не должна быть большой
даже если использовать его с madvise все равно паттерн чтения такой же линейный, так что большую часть времени ты читаешь со скоростью memcpy

Antony
25.08.2017
12:53:24
Это — экономия на спичках.
Это незаметно ускоряет, если происходит чтение страницы с диска, и ощутимо ускоряет, если работаете с уже подгруженной в оперативу страницей (например если этот файл кто-то недавно читал/писал)

Alexander
25.08.2017
12:59:04

Matwey
25.08.2017
12:59:20

reagentoo
25.08.2017
13:01:15
почему как только я делаю
std::experimental::filesystem::path p = "/some/path"
пишет ошибка: undefined reference to `std::experimental::filesystem::v1::__cxx11::path::_M_split_cmpts()' ?

Alexander
25.08.2017
13:01:30

reagentoo
25.08.2017
13:01:38

Alexander
25.08.2017
13:02:00
https://stackoverflow.com/questions/33149878/experimentalfilesystem-linker-error

Google

reagentoo
25.08.2017
13:02:48
это только для experimental или всегда так будет?

Antony
25.08.2017
13:05:41

Matwey
25.08.2017
13:07:12

Pavel
25.08.2017
13:16:55
как эти hugetlb включить то по нормальному?

Alexander
25.08.2017
13:17:54
а что значит по-нормальному?

Pavel
25.08.2017
13:18:09
ну у меня тут инвалиды аргументы
hugetlbfs надо монтировать?
или это просто в ядре должно быть включено?

Admin
ERROR: S client not available

Alexander
25.08.2017
13:18:49
в ядре

Pavel
25.08.2017
13:19:05
включено. дефолтное арчевое
в nr_hugepages надо писать?
MAP_POPULATE в два раза быстрее того варианта что с posix_fadvise на SO
надо проверить на большом кол-ве файлов. у меня как раз утилита для этого есть

Ilia
25.08.2017
13:25:34

Berkus
25.08.2017
13:26:16

Ilia
25.08.2017
13:26:36
Ну тогда вообще не понятно, в чём экономия.

Antony
25.08.2017
13:46:07

Google

Ilia
25.08.2017
13:46:56
Я ж говорю, что свисает — скопировать
Если маленькое будет — что так, что так, экономии нет. Если большое — большую часть перемапить, остальное скопировать. Тоже нет экономии.
Ну это всё равно фантазии...Надо код ядра линука смотреть...

Антон
25.08.2017
13:49:36
как при помощи CMake собрать инструмент, который использует библиотеку, у которой есть файл, который генерируется этим инструментом

Alexander
25.08.2017
13:49:53

Антон
25.08.2017
13:49:59
но в этом инструменте этот файл не используется
почти circular dependencies

Alexander
25.08.2017
13:50:26
а как же ты этот файл использовать хочешь?
ЯННП

Антон
25.08.2017
13:51:33
смотрите, есть asc.exe
он генерирует cpp файл

Alexander
25.08.2017
13:52:14
окей

Антон
25.08.2017
13:52:18
который линкуется с библиотекой

Alexander
25.08.2017
13:52:22
ок

Антон
25.08.2017
13:52:26
которую использует asc.exe

Alexander
25.08.2017
13:52:44
имя тебе известно этого генерируемого файла?

Антон
25.08.2017
13:52:45
но этот функционал этой библиотеки asc.exe не использует

Alexander
25.08.2017
13:52:54
теперь понял
тогда в чём проблема его прилинковать этот сгенерированный файл?
или тебе нужно запускать генерацию во время работы cmake?

Антон
25.08.2017
13:53:27

Alexander
25.08.2017
13:53:35
ага, вот теперь понял

Антон
25.08.2017
13:53:50
как собрать библиотеку без него, а потом с ним