Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
как быстрее всего прочесть большой файл с числами, каждое с новой строки?
|
|||
|---|---|---|---|
|
#18+
Dima T, отрицательные числа - не обрабатываешь, за переполнением - не следишь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2015, 08:10 |
|
||
|
как быстрее всего прочесть большой файл с числами, каждое с новой строки?
|
|||
|---|---|---|---|
|
#18+
С указателями чуть быстрее Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. Померил еще зависимость времени от размера буфера РазмерВремя4 Кб 15.18 Кб 14.816 Кб 14.932 Кб 14.864 Кб 15.5128 Кб 15.6256 Кб 15.8512 Кб 16.0 ХЗ почему так. Может из-за кэша проца. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2015, 08:14 |
|
||
|
как быстрее всего прочесть большой файл с числами, каждое с новой строки?
|
|||
|---|---|---|---|
|
#18+
ИзопропилDima T, отрицательные числа - не обрабатываешь, за переполнением - не следишь Я же написал что парсер минимальный. Просто для демонстрации его влияния на общее время работы. ХЗ какие правила разбора у ТС. Может там еще строки учитывать надо, т.е. в одной строке несколько чисел и т.д. и т.п. Я к тому что чтение ускорять бесполезно - надо разбор ускорять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2015, 08:19 |
|
||
|
как быстрее всего прочесть большой файл с числами, каждое с новой строки?
|
|||
|---|---|---|---|
|
#18+
Dima TЯ же написал что парсер минимальный. Просто для демонстрации его влияния на общее время работы. усложнение серьёзно повлияет на время работы - демонстрация ни о чём ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2015, 08:21 |
|
||
|
как быстрее всего прочесть большой файл с числами, каждое с новой строки?
|
|||
|---|---|---|---|
|
#18+
Изопропилусложнение серьёзно повлияет на время работы Я разве обратное утверждаю? Мой примитивнейший парсер уже почти вдвое замедлил работу. Это несерьезное влияние? Изопропилдемонстрация ни о чём Скорость работы родных средств разбора ТС уже потестил, с их результатов топик и родился. Я о том что ТСу надо парсер свой писать и затачивать его под свою задачу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2015, 09:06 |
|
||
|
как быстрее всего прочесть большой файл с числами, каждое с новой строки?
|
|||
|---|---|---|---|
|
#18+
Добавил отрицательные и контроль переполнения Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. Время 18.7 сек Не особо замедлилось. Всего на 25% ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2015, 09:33 |
|
||
|
как быстрее всего прочесть большой файл с числами, каждое с новой строки?
|
|||
|---|---|---|---|
|
#18+
Задачка с собеседования? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2015, 09:35 |
|
||
|
как быстрее всего прочесть большой файл с числами, каждое с новой строки?
|
|||
|---|---|---|---|
|
#18+
Dima T, грязненько парсер выглядит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2015, 10:00 |
|
||
|
как быстрее всего прочесть большой файл с числами, каждое с новой строки?
|
|||
|---|---|---|---|
|
#18+
ИзопропилDima T, грязненько парсер выглядит Напиши чистенько если время есть. Накидал по-быстрому первое что в голову пришло. Работает вроде правильно, но особо не тестил. Что именно не понравилось? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2015, 10:23 |
|
||
|
как быстрее всего прочесть большой файл с числами, каждое с новой строки?
|
|||
|---|---|---|---|
|
#18+
Dima TИзопропилDima T, грязненько парсер выглядит Напиши чистенько если время есть. Накидал по-быстрому первое что в голову пришло. Работает вроде правильно, но особо не тестил. Что именно не понравилось? Дима! 9 секунд чистого чтения против 15 секунд чтения + парсера? Верно я понял твои цифры? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2015, 11:27 |
|
||
|
как быстрее всего прочесть большой файл с числами, каждое с новой строки?
|
|||
|---|---|---|---|
|
#18+
mayton, ты все правильно понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2015, 11:30 |
|
||
|
как быстрее всего прочесть большой файл с числами, каждое с новой строки?
|
|||
|---|---|---|---|
|
#18+
Тогда курим двух-процессный режим. Возможно там будут нюансы. Но неплохо было-бы сделать 1 процесс-поставщик который поставляет готовые chunks (чётный - нечётный), а второй за ним подбирает и парсит. Это для модели когда скорость чтения с диска достаточно равномерна. Если будут сильные рывки - тогда имеет смысл сделать буферы побольше двух. И завернуть их в бублик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2015, 11:36 |
|
||
|
как быстрее всего прочесть большой файл с числами, каждое с новой строки?
|
|||
|---|---|---|---|
|
#18+
maytonНо неплохо было-бы сделать 1 процесс-поставщик который поставляет готовые chunks (чётный - нечётный), а второй за ним подбирает и парсит так следует действовать и с единственным процессом - получили буфер(синхронно/асинхронно, прочитали из хэндла/получили из фильтра и т д) - передали буфер парсеру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2015, 12:05 |
|
||
|
как быстрее всего прочесть большой файл с числами, каждое с новой строки?
|
|||
|---|---|---|---|
|
#18+
Изопропил, согласен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2015, 12:10 |
|
||
|
как быстрее всего прочесть большой файл с числами, каждое с новой строки?
|
|||
|---|---|---|---|
|
#18+
Асинхронное всё API здесь? Или еще где-то? Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2015, 13:33 |
|
||
|
как быстрее всего прочесть большой файл с числами, каждое с новой строки?
|
|||
|---|---|---|---|
|
#18+
maytonАсинхронное всё API здесь? Или еще где-то? Код: plaintext 1. Если мы говорим о линуксе то это user-space эмуляция POSIX AIO linux aio сдесь Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2015, 17:44 |
|
||
|
как быстрее всего прочесть большой файл с числами, каждое с новой строки?
|
|||
|---|---|---|---|
|
#18+
Ну тогда всё чики-пики. Только я щас метаюсь между форумом и багофиксом поставки. Может кто-то "запилит" AIO-реализацию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2015, 17:47 |
|
||
|
как быстрее всего прочесть большой файл с числами, каждое с новой строки?
|
|||
|---|---|---|---|
|
#18+
maytonНу тогда всё чики-пики. Только я щас метаюсь между форумом и багофиксом поставки. Может кто-то "запилит" AIO-реализацию? Нет никакого смысла использовать POSIX AIO эмуляцию. Делайте "true unix way" один процесс читает и выдает в stdout а другой берет из stdin и парсирует. Просто в реализации и оптимально. Можно и еще упростить - вместо первого процесса и bash сойдет. ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2015, 18:03 |
|
||
|
как быстрее всего прочесть большой файл с числами, каждое с новой строки?
|
|||
|---|---|---|---|
|
#18+
YesSql, некислую часть задач новичков в С++ можно свести к bash, grep, awk ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2015, 18:12 |
|
||
|
как быстрее всего прочесть большой файл с числами, каждое с новой строки?
|
|||
|---|---|---|---|
|
#18+
maytonМожет кто-то "запилит" AIO-реализацию? про AIO не в курсе. Хотел по-быстрому переделать под два потока на WinAPI: один читает, второй парсит. Переписал, но криво работает, 3 часа уже ошибку ищу. Вроде элементарная задача. Подозревать WinAPI в кривости последнее дело, явно сам где-то накосячил, не найду - выложу на общее обсуждение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2015, 18:13 |
|
||
|
как быстрее всего прочесть большой файл с числами, каждое с новой строки?
|
|||
|---|---|---|---|
|
#18+
Dima TmaytonМожет кто-то "запилит" AIO-реализацию? про AIO не в курсе. Хотел по-быстрому переделать под два потока на WinAPI: один читает, второй парсит. Переписал, но криво работает, 3 часа уже ошибку ищу. Вроде элементарная задача. Подозревать WinAPI в кривости последнее дело, явно сам где-то накосячил, не найду - выложу на общее обсуждение. Давай в sourceforge. Я тоже покурю. Только вечером. Заодно сравним мультипоточность Win и мультипроцессность в Пингвине. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2015, 18:19 |
|
||
|
как быстрее всего прочесть большой файл с числами, каждое с новой строки?
|
|||
|---|---|---|---|
|
#18+
Dima TХотел по-быстрому переделать под два потока на WinAPI на WinAPI лучше будет completion port и один поток ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2015, 18:42 |
|
||
|
как быстрее всего прочесть большой файл с числами, каждое с новой строки?
|
|||
|---|---|---|---|
|
#18+
Начитался про lock-free алгоритмы, хотел на практике затестить, задача подходящая, но похоже что-то я недопонял. Подождем до завтра. Утром обычно все понятнее становится. Не взлетит - выложу на общее о(б)суждение :) Взлетит - тоже выложу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2015, 18:42 |
|
||
|
как быстрее всего прочесть большой файл с числами, каждое с новой строки?
|
|||
|---|---|---|---|
|
#18+
Изопропилна WinAPI лучше будет completion port и один поток Нет цели сделать на/под WinAPI, т.е. только под Win. Есть обратная цель - сделать универсально. Но де-факто есть VC2008 на XP. Там нет С++11 с трэдами и <atomic>. От XP отказаться пока не готов: VC2012 где есть С++11 - не ставится. Надо наверно уже переехать на W7, но жаба давит: там где живет 5 виртуалок на XP - еле влазит одна W7. SSD не резиновые. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2015, 18:57 |
|
||
|
как быстрее всего прочесть большой файл с числами, каждое с новой строки?
|
|||
|---|---|---|---|
|
#18+
А мне вот это интересно попробовать https://www.freebsd.org/ru/features.html Многопоточая модель M:N через pthreads делает возможным масштабируемое исполнение потоков на множестве CPU, ставя множество пользовательских потоков в соответствие малому количеству Kernel Schedulable Entities. С принятием модели Scheduler Activation такой подход к многопоточности может быть адаптирован к специфическим требованиям широкого набора приложений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2015, 19:24 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39118703&tid=2018695]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
83ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
| others: | 15ms |
| total: | 214ms |

| 0 / 0 |
