Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Sergey_O
5 / 5 / 1
Регистрация: 09.12.2009
Сообщений: 65
#1

Скорость выполнения. - C++

23.06.2010, 12:04. Просмотров 659. Ответов 3
Метки нет (Все метки)

Есть консольное приложение, работающее с огромными текстовыми файлами, сравнивает их, читает, записывает и т.д.

Судя по диспетчеру задач, тратится 223-224 мб оперативной памяти.

Так вот хочется ускорить выполнение программы, допустим как-то заставить использовать уже 2-3 гб оперативки. Как это реализовать?

Или есть другие варианты? По-возможно поподробнее.

Работаю в Visual Studio 2010, C++.

Буду благодарен за любые ответы.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2010, 12:04     Скорость выполнения.
Посмотрите здесь:

Скорость выполнения операторов - C++
Привет всем. У меня есть задачка с которой не могу справится, она очень простая но функций с помощью которых бы смог её реализовать я не...

Скорость выполнения delete - C++
Всем привет! Интересует почему скорость выполнения деструктора зависит нелинейно от объёма структуры? Есть у меня бинарное дерево...

Скорость выполнения, а так же работа с дв. файлами - C++
Здравствуйте. У меня есть несколько вопросов, на которые я уже давненько ищу ответы, а именно : 1) Для таких классов, как...

От чего зависит скорость выполнения программы? - C++
от чего больше всего зависит скорость выполнения программы?

Как узнать скорость выполнения программы? - C++
Должна же быть какая то функция или метод, чтобы узнать время выполнения программы, или возможно есть инструменты в MVS2010 для анализа...

Влияет ли невыполняющееся условие на скорость выполнения строчки с этим условием? - C++
Здравия всем! Мне тут стало любопытно. Есть у меня, к примеру, такой код: var = 0; if (var = 1) {exit(0)} if (var = 2)...

Найти количество счастливых билетов учитывая скорость выполнения программы - C++
Найти количество счастливых билетов учитывая скорость выполнения программы,счастливый билет имеет вид a+b+c=d+e+f.

скорость сортировки - C++
вот написал к примеру програмку. работает так Меню с пунктами: 1.для заполнения матрицы 2.для сортировки 3.для принта 4.для...

Set, скорость - C++
Доброго времени суток. Получил задачу написать set, не просто set, а быстрый основанный на бинарном дереве поиска set. Вот что...

Скорость рандома - C++
Скажите, вот склепал программку, где "Z" эрэндэшно бегает по полю. Можно ли ускорить этот процесс? Можно ли упростить программку и...

Скорость кода - C++
Подскажите, пожалуйста, компилятор, который обеспечивает наибольшую скорость выполнения кода.

скорость звука - C++
подскажите пожалуйста с помощью чего можно создать регулятор скорости звука (азбука морзе)?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
manido
1 / 1 / 0
Регистрация: 22.06.2010
Сообщений: 6
23.06.2010, 12:08     Скорость выполнения. #2
На програмку можно взглянуть?
Sergey_O
5 / 5 / 1
Регистрация: 09.12.2009
Сообщений: 65
23.06.2010, 13:14  [ТС]     Скорость выполнения. #3
Я лучше объясню суть:
3 текстовых файла: 30, 70, 40 тысяч строчек в каждом. Идёт поиск уникальных строчек и запись их в отдельный файл. То есть каждая строчка сравнивается с каждой, при определённых условиях продолжается сравнение, при некоторых переход к новой строке. В общем с алгоритмом проблем нет, волнует скорость выполнения.
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,363
23.06.2010, 13:26     Скорость выполнения. #4
У тебя алгоритмическая затыка. Сложность описанного алгорима O^2, а может быть, и O^3.... Тебе нужно не "сравнивать каждую с каждой" строчки, а:
1. читать из файла строчки,
2. тут же считать хеш строки (или ее "нужной" или "значащей" части),
3. хеши организовать в бинарное дерево или отсортированный массив, и по нему сразу же искать совпадения хешей. Если хеш не найден в таблице - добавить (ну и ссылки на строки где-то тут....). При выборе хорошей хеш-функции совпадение хешей == совпадение строк.
Вот где-то так. Это будет работать довольно шустро, сложность будет вряд ли сильно больше O. Конечно, возможны какие-то особенности описанного алгоритма, исходя из твоей конкретной задачи.

PS: если какие-то дохлые 70 тыс.строк считаются "огромным" файлом.... :-)) - развеселило.
Yandex
Объявления
23.06.2010, 13:26     Скорость выполнения.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru