![]() |
Модераторы: xvr |
![]() ![]() ![]() |
|
Rod |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 19.10.2006 Репутация: нет Всего: нет |
Есть файл - около 2 GB
Его обрабатывает парсер. На обработку каждой строки уходит до 40ms(параметров в строке довольно много) Как ускорить работу парсера хотя бы раза в 3? Сейчас Используются следующие Функции : fseek fgetc strstr и др Можно ли подгрузить кусок файла в память, а потом с ним работать? Если да - то как? |
|||
|
||||
MAKCim |
|
||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 84 Всего: 207 |
mmap/munmap тебе поможет man 2 mmap читай напрямую без библиотечных функций через read и большими блоками
ужас Это сообщение отредактировал(а) MAKCim - 19.10.2006, 21:20 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||
|
|||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 16 Всего: 196 |
Rod
Для начала попробуй использовать fgets (fscanf). Думаю это значительно ускорит выполнение программы. Если же этого будет недостаточно, то остаются варианты работы через буфер или mmap, как советует MAKCim, но в этом случае реализция сложней. |
|||
|
||||
bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 4 Всего: 317 |
иногда проблемы оптимизации встают в результате столкновения скорости кода программы с использованием оперативной памяти.
поэтому, у меня другой вопрос: всякие любвеобильные к памяти програмки надо кормить соответствующим железом. Сколько у вас, дорогой человек, памяти для этих игр с парсингом ? как много памяти ипользует ваш код ? насколько вы знакомы с параллелизацией кода, с параллельным и распределённым программированием ? -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: нет Всего: 360 |
Вот примерчик для прохождение по файлу буффером
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Программирование под Unix/Linux" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |