- Регистрация
- 08.09.2010
- Сообщения
- 577
- Благодарностей
- 41
- Баллы
- 28
Быстро в общем не сделать такое .. .Боюсь, что-то зависнет))
мне надо собрать данные с 350 лямов профилей ) в один поток явно такое не сделать , а вот 50 уже лучше но при этом должно быть все на запросах, просто чтоб одно и тоже не парсить .. можно конечно рандом и чёрный список , но думал может какой еще варик естьЗачем генерировать от 1 до 350 000 000?
Зачем генерация, если и так известно, что 1 это 1, 2 это 2, а 350 млн это 350 млн.
Сгенерировать не проблема. Проблема с выводом куда-то всего этого добра. Хотел шаб накидать, 16 ядерник при тесте генерил 35 лямов 10 минут, нагерил файл в 2 гб, в котором всего 32 с небольшим млн и я выключил, надоело ждать Притом я выводил на nvme2, если вывод на hdd, боюсь там совсем долго это дело будет Хотя, если на ночь поставить, то почему бы и нет.Быстро в общем не сделать такое .. .
какой можешь подсказать варик мне надо заходить так сайт/профиль/48498 вот и так 350 лямовСгенерировать не проблема. Проблема с выводом куда-то всего этого добра. Хотел шаб накидать, 16 ядерник при тесте генерил 35 лямов 10 минут, нагерил файл в 2 гб, в котором всего 32 с небольшим млн и я выключил, надоело ждать Притом я выводил на nvme2, если вывод на hdd, боюсь там совсем долго это дело будет Хотя, если на ночь поставить, то почему бы и нет.
счетчик может и подошел бы для 1 потока а тут 50 минимум надо .. либо рандом число и проверка на черный списокВ Зенке есть кубик счетчика. Увеличивайте на 1 переменную с его помощью. Ну и в условии проверяйте чтобы он не был более 350М
В БД храни последний использованный потоком id и увеличивай счетчик при каждом обращении. Ну и проверяй естественно что не вышел за рамки 350 млн. Как по мне изич, примерно в 350 млн раз проще чем генерить список, а потом с ним работатькакой можешь подсказать варик мне надо заходить так сайт/профиль/48498 вот и так 350 лямов
глобальная переменная или как написали выше записывать значение в бдкак так?
можешь хотя б небольшим примером показат ька кэто сделать можно*? я никогда с базой не работал.. не понимаю как ..В БД храни последний использованный потоком id и увеличивай счетчик при каждом обращении. Ну и проверяй естественно что не вышел за рамки 350 млн. Как по мне изич, примерно в 350 млн раз проще чем генерить список, а потом с ним работать
странно что не предлагают использовать общие переменные.... хотя там конечно лочить надо.... не.... плохой вариант....можно в один список закинуть 50 строк
1-7000000
7000001-14000000
14000001-21000000
21000001-28000000
28000001-35000000
........
каждый поток берет строку, сплитует и первое число увеличивает до тех пор пока не приравняется к второму числу
можно при останове или ошибках перезаписывать в список, чтобы продолжить потом
350 млн за 10 часов переберет? У чела задача на года А после ребута компа / серва глобальная переменная занулится ведь. Потом начинать все заново?странно что не предлагают использовать общие переменные.... хотя там конечно лочить надо.... не.... плохой вариант....
Так он же в 50 потоков собирается парсить, а не в 350 млн потоковя могу написать код который выполнит паралельно в 350 лямов, и твой комп сдохнит просто
ну ведь можно и сохранить где переменную нужную.... например в профиле.... только тссс... это тема из плохого программирования350 млн за 10 часов переберет? У чела задача на года А после ребута компа / серва глобальная переменная занулится ведь. Потом начинать все заново?