|
Вопрос # 5 854/ вопрос открыт / |
|
Приветствую, уважаемые эксперты!
Есть условие:
Реализовать методы для работы со строками:
1) Копирование части строки заданной длины с заданной позиции;
2) Удаление части строки заданной длины с заданной позиции;
3) Поиск - подстроки в строке
Определить их производительность по отношению к стандартным методам.
Работу над строками я разберусь, проблема будет с оптимизацией немного, а вот как сделать вот это определение их производительности?
Заранее благодарю!
 |
Вопрос задал: Жикльор (статус: 5-ый класс)
Вопрос отправлен: 30 декабря 2011, 20:58
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 6; последнее сообщение — 5 января 2012, 14:56; участников в обсуждении: 2.
|
min@y™ (статус: Доктор наук), 31 декабря 2011, 10:43 [#1]:
Цитата (Жикльор):
а вот как сделать вот это определение их производительности?
Ну, удельную производительность вычислить можно. Оценка, кончно, грубая, но для учебной задачи сойдёт. Короче, надо замерять время отработки стандартных функций, потом - время самодельных; делить первое на второе, умножать на 100. Получатся искомые проценты.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
min@y™ (статус: Доктор наук), 31 декабря 2011, 10:49 [#2]:
Да, забыл добавить: всех с наступающим, я пью уже. У меня тут абрау-дюрсо брют и шоколадка. Время 10:49. Новый год же!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
min@y™ (статус: Доктор наук), 2 января 2012, 10:37 [#4]:
Цитата (Жикльор):
Уже разобрался немного с QueryPerfomanceCounter и QueryPerfomanceFrequency 
Да, да, детка! Йа, йа, фольксваген штангенциркуль! Щас покажу модуль.
{
HRT := THRTimer.Create;
HRT.StartTimer; Сброс таймера в ноль
HRT.ReadTimer; Возвращает отсчитанное время в миллисекундах
начиная со времени старта
}
unit HRTimer;
interface
uses Windows;
type
// --------------------- Класс - высокоточный таймер -------------------------
THRTimer = class(TObject)
constructor Create;
function StartTimer: Boolean; // Обнуление таймера
function ReadTimer: Double; // Чтение значения таймера в миллисекундах
private
StartTime: Double;
ClockRate: Double;
public
Exists: Boolean; // Флаг успешного создания таймера
end;
var
Timer: THRTimer; // Глобальая переменная. Создаётся при запуске программы
{ Фукнция высокоточной задержки.
Delphi:
Синтаксис: function HRDelay(const Milliseconds: Double): Double;
Milliseconds: Double - задержка в миллисекундах (может быть дробной)
Результат функции - фактически произошедшая задержка с погрешностью.
Пример вызова функции: X:= HRDelay(100.0); или HRDelay(100.0);
C++Builder:
Синтаксис: double HRDelay(const double Milliseconds);
Double Milliseconds - задержка в миллисекундах (может быть дробной)
Результат функции - фактически произошедшая задержка с погрешностью.
Пример вызова функции: double X = HRDelay(100.0); или HRDelay(100.0);}
function HRDelay(const Milliseconds: Double): Double;
implementation
function HRDelay(const Milliseconds: Double): Double;
begin
Timer.StartTimer();
repeat
Result:= Timer.ReadTimer();
until Result >= Milliseconds;
end;
{ THRTimer }
constructor THRTimer.Create;
var
QW: LARGE_INTEGER;
begin
inherited Create;
Exists := QueryPerformanceFrequency(Int64(QW));
ClockRate := QW.QuadPart;
end;
function THRTimer.StartTimer: Boolean;
var
QW: LARGE_INTEGER;
begin
Result := QueryPerformanceCounter(Int64(QW));
StartTime := QW.QuadPart;
end;
function THRTimer.ReadTimer: Double;
var
ET: LARGE_INTEGER;
begin
QueryPerformanceCounter(Int64(ET));
Result := 1000.0 * (ET.QuadPart - StartTime) / ClockRate;
end;
initialization
Timer:= THRTimer.Create();
finalization
Timer.Free();
end.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
min@y™ (статус: Доктор наук), 2 января 2012, 10:39 [#5]:
Как эта хрень работает на кирпичах с переменной частотой, я не знаю, говорю честно и заранее. Проверяй сам, братэлло.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
Жикльор (статус: 5-ый класс), 5 января 2012, 14:56 [#6]:
Спасибо, еще раз всех с Новым Годом )
Если бы строители строили дома так, как программисты пишут программы, то первый же дятел уничтожил бы цивилизацию.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|