Что лучше для работы с файлами QT или C#?

Я написал две программы для поиска в файлах с большим объемом данных. Одна на QT + C++ а другая на C#. Но qt загружает файлы за 5 минут а, С# 30 за минут. В чем может быть причина?
Да и вообще что лучше для работы с файлами большого объема QT или C#? Перечислите пожалуйста достоинства и недостатки обоих.
  • Вопрос задан
  • 467 просмотров
Пригласить эксперта
Ответы на вопрос 6
Adamos
@Adamos
Возможно, использованы высокоуровневые функции без понимания того, как они реализованы на низком уровне.
Например, если программа на Qt читает файл кусками, отображая в память только то, что читает сейчас, а программа на Шарпе вычитывает весь файл в память и только потом начинает по нему искать - вполне возможна шестикратная разница даже при совершенно идентичной реализации алгоритма собственно поиска.
Ответ написан
@justmavi
Software Development Engineer at Softconstruct
Ну конечно же вариант, написанный на плюсах будет работать быстрее.
А почему первый вариант работает в 6 раз быстрее, пока что сказать (ванговать) не могу. Надо посмотреть на реализацию второго варианта.
Ответ написан
maaGames
@maaGames
Погроммирую программы
Исходя из постановки вопроса, на 99% уверен в корявой реализации алгритма поиска на обоих языках. Рекомендую погуглить про алгоритм поиска подстрок методом Кнута-Морриса-Пратта. Чем больше искомая строка, тем быстрее будет выполняться поиск (зависит от содержимог оподстроки, но в общем быстрее).
Ответ написан
Комментировать
veydlin
@veydlin
Мне никогда не жалко средств на свое любопытство
На шарпе разработка в разы быстрее, я бы предложил гибридный вариант:
Написать dll на с++ и подключить её в шарп
Ответ написан
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
Я написал две программы для поиска в файлах с большим объемом данных. Одна на QT + C++ а другая на C#. Но qt загружает файлы за 5 минут а, С# 30 за минут. В чем может быть причина?
Да и вообще что лучше для работы с файлами большого объема QT или C#? Перечислите пожалуйста достоинства и недостатки обоих.


Не видя кода сказать невозможно. Хотя я бы посоветовал асинхронный ввод для реально больших файлов или тупое считывание в память для маленьких в синхронном режиме.
Маленькие это меньше 50 мегабайт.
Ответ написан
Комментировать
@basrach
> Что лучше для работы с файлами
Лучше то, в чем у вас больше опыта, и на чем написано большинство "рядом работающих" проектов. Если всё остальное написано на Qt, то определенно не стоит писать чтение файлов на C#, и наоборот.

> В чем может быть причина?
Причина может быть в кривой реализации на C#. Чтение файлов в любом языке полагается на механизмы ОС, разницы в 6 раз быть не может если измерять только чтение как таковое. Либо вы мерили что-то не то, либо одно из двух.

> Перечислите пожалуйста достоинства и недостатки обоих.
Является ли достоинством или недостатком та или иная фича зависит от того, с какой точки зрения посмотреть.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы