The OpenNET Project / Index page

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



Индекс форумов
Составление сообщения

Исходное сообщение
"Red Hat передаёт язык Ceylon на попечительство организации E..."
Отправлено Аноним, 23-Авг-17 13:54 
>> Неужели та самая хваленая прямизна рук жабистов, позволяющая им запускать grep таким
>> образом, чтобы он падал через час с OOM на сервачке 96 ГБ ОЗУ
> Всё не можешь забыть как си слил жабе? :)

О, так там теперь была замешана жаба? Это такая травматическая амнезия? :)

>> но почему-то спокойно обрабатывал ту же задачу, максимум за минуту
> Не ври, ты решил другую задачу, используя совершенно другие ключи (я даже
> не читал что именно).

Ты даже не читал, но точно знаешь? Да ну:
https://www.opennet.ru/openforum/vsluhforumID3/111658.html#29
> лютый жабист__
> дано два файла с ОГРН (число 13 символов), в одном 4.5m, в другом 800k строчек. Надо сделать третий файл с содержимым f1 которого нет в f2.
> grep -v -x -f f2 f1 >f3
> съел 2.5ГБ рамы и задумался уже на много минут. Сервак с 12 ядрами, 100ГБ ОЗУ.

...
> grep сишный через час выпал в OOM на сервере с 96ГБ ОЗУ.


> не_жабисты

$ time awk 'ARGIND==1{x[$0]=1}ARGIND==2&&!($0 in x)' <(seq 1000000000000 1000005000000|shuf) <(seq 1000003000000 1000009000000|shuf) |wc -l
4000000

real    0m17.431s
user    0m10.712s
sys     0m0.232s
$ _

$ time grep -vFf <(seq 1000000000000 1000005000000|shuf) <(seq 1000003000000 1000009000000|shuf) |wc -l
4000000

real    0m55.920s
user    0m50.092s
sys     0m0.860s
$ _



> есть старенький ноут с i5 (первым еще) и "слегка" поменьше рамы.

% time grep -v -c -F -f f2 f1      
3000000
grep -v -c -F -f f2 f1  15,42s user 0,57s system 99% cpu 16,015 total  # ~700MB озу

% time awk 'NR==FNR {a[$0];next} !($0 in a){print $0}' f2 f1|wc -l            
3000000
awk 'NR==FNR {a[$0];next} !($0 in a){print $0}' f2 f1  11,76s user 0,65s system 99% cpu 12,411 total
wc -l  0,40s user 0,05s system 3% cpu 12,334 total    #~1ГБ


Просто кое-кто пупырчатый увидел в мане (или скорее нашел и скопипастил в хипстобложике) пример загрузки с ключем "-f" для загрузки файла образцов. А про то, что образцы будут читаться как регулярки (ага, все 4 мульена) то ли не дочитал, то ли не понял.
И до следующего ключа "-F, --fixed-strings" указывающего грепу, что из файла мы загружаем простые строки, а не регулярки - не дочитал. Или не знал, а потом ещи и забыл.
В итоге (как обычно у жабистов) - фейл на ровном месте, но виноваты или злая сишка с плюсами или окружение, не осилившее предугадать желания и чаяния джаваистов :)

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



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

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