powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помогите советом или примерчиком на С, для (+)
9 сообщений из 9, страница 1 из 1
Помогите советом или примерчиком на С, для (+)
    #32321189
SAnatoliy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как можно открывать файлы по другому, чтоб ускорить чтение?
Так как строк в файле много и обработка идет долго.

Мне посоветовали написать на чистом "С" не используя библиотек, то можно ускорить процесс.

Если не трудно приведите пример для моего кода.

Сейчас реализовал все так:

char str[200];
pcfile - полный путь к файлу
ifstream in(pcfile.c_str());

for(Count = 0; !in.eof(); Count++)
{
in.getline(str, 199);
if(str[0] == '=' || strlen(str) < 3) break;

k_1 = GetDouble(str, 67, 6);
k_2 = GetDouble(str, 73, 6);
k_3 = GetDouble(str, 79, 6)
k_n = GetDouble(str, 80, 6)

//запись в БД
T_f->Insert();
T_f->FieldValues["NAM"] = k1;
T_f->FieldValues["NAM2"] = kn;
}
...
Рейтинг: 0 / 0
Помогите советом или примерчиком на С, для (+)
    #32321237
Tracer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А сервер какой используешь ?
...
Рейтинг: 0 / 0
Помогите советом или примерчиком на С, для (+)
    #32321244
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне посоветовали написать на чистом "С" не используя библиотек, то можно ускорить процесс.

Вот они пусть и пишут
...
Рейтинг: 0 / 0
Помогите советом или примерчиком на С, для (+)
    #32321336
Я например частенько для разборки текстовых файлов пользуюсь FLEX (иногда в комбинации с BISON). Хотя, конечно это простым методом не назовеш :), но зато можно сделать очень эффективный и быстрый разбор файла.
...
Рейтинг: 0 / 0
Помогите советом или примерчиком на С, для (+)
    #32321360
Еще маленький совет :)
Закоментируй код который обращается к базе данных, т.е. считывай данные из файла, но в базу не запихивай. И тогда ты сразу поймеш, надо ли тебе заниматься "ускорением чтения из файла".
...
Рейтинг: 0 / 0
Помогите советом или примерчиком на С, для (+)
    #32321402
123456789098
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SAnatoliy писал:Как можно открывать файлы по другому, чтоб ускорить чтение?
Можно читать из файла блоками, а не по одной строке. и чем больше блок тем быстрее читает.
...
Рейтинг: 0 / 0
Помогите советом или примерчиком на С, для (+)
    #32322078
Фотография vdimas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а какая информация в файле?
может подумать о простейшем лексическом анализаторе? Который сразу тебе числа выдаст. И не надо будет читать ни в какой буфер.

Да, можно отказаться от STL-потоков, если стоит задачи экономить микросекунды, а так - они неплохи, и с буферированием у них порядок.


T_f->Insert();
T_f->FieldValues["NAM"] = k1;
T_f->FieldValues["NAM2"] = kn;

обращение к полям по имени вообще "сожрет" все твое быстродействие.
по-другому никак?

накапливай данные в буфер, а потом скидывай их за один раз в базу, незачем это делать построчно.
...
Рейтинг: 0 / 0
Помогите советом или примерчиком на С, для (+)
    #32326257
_Konst
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Согласен на 100%, что основные тормоза от построчной вставки в бд, лучше использовать BulkInsert, а если хочется "накалывать блох", то нужно хотя бы убрать strlen из цикла - это же вложенный цикл получается. Число прочитанных символов и так должно быть известно потоку - ф-ия gcount, кажется возвращает это число.
...
Рейтинг: 0 / 0
Помогите советом или примерчиком на С, для (+)
    #32326535
maratka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
оптимизировать нужно самый медленный код, а это запись в базу построчно. для этого можно использовать и транзакции.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Помогите советом или примерчиком на С, для (+)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]