Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.06.04;
Скачать: [xml.tar.bz2];

Вниз

С процедурами - лучше?   Найти похожие ветки 

 
AlexanderMS ©   (2006-05-16 19:06) [0]

Даёт ли какое-нибудь преимущество использование
s := concat(s, c) вместо s := s + с;
inc(c, 2) вместо c := с + 2?

В каких случаях код будет оптимальнее?


 
TUser ©   (2006-05-16 20:21) [1]

См. CPU window

Зы. Реального преимущества не дает.


 
_duk   (2006-05-16 20:38) [2]

inc(c, 2) использовать лучшее. на всех олимпиадах шарящие люди используют именно этот метод


 
Gydvin ©   (2006-05-16 20:43) [3]

кто-то здесь говорил, что inc лучше и обосновывал как-то


 
Loginov Dmitry ©   (2006-05-16 20:45) [4]

AlexanderMS ©   (16.05.06 19:06)
Даёт ли какое-нибудь преимущество использование
s := concat(s, c) вместо s := s + с;


Delphi syntax:

function Concat(s1 [, s2,..., sn]: string): string;

Description

In Delphi code, use Concat to concatenate an arbitrary number of strings. Each parameter is a string-type expression. The result is the concatenation of all the string parameters.

Using the plus (+) operator has the same effect on two strings as using the Concat function:

S := "ABC" + "DEF";

Tip: The plus operator is faster than Concat.


 
Amoeba ©   (2006-05-17 11:29) [5]


> Gydvin ©   (16.05.06 20:43) [3]
> кто-то здесь говорил, что inc лучше и обосновывал как-то

Об этом говорится даже в документации по Паскалю


 
Ega23 ©   (2006-05-17 11:34) [6]


> кто-то здесь говорил, что inc лучше и обосновывал как-то


Конечно лучше. Если это asm.


 
Gydvin ©   (2006-05-17 11:39) [7]


> Amoeba ©   (17.05.06 11:29) [5]

а что это :))))


 
Ega23 ©   (2006-05-17 11:40) [8]


var
i, ticks, j : Integer;
begin
 j:=0;
 ticks:=GetTickCount;
 for i:=1 to 1000000000 do j:=Inc(j);;
 ticks:=GetTickCount-ticks;
 Label1.Caption:="Ticks - "+IntToStr(ticks)+"; j="+IntToStr(j);

var
i, ticks, j : Integer;
begin
 j:=0;
 ticks:=GetTickCount;
 for i:=1 to 1000000000 do j:=j+1;;
 ticks:=GetTickCount-ticks;
 Label1.Caption:="Ticks - "+IntToStr(ticks)+"; j="+IntToStr(j);


Первый вариант - 2609 мс, второй - 2594. Итого: + быстрее.


 
Gydvin ©   (2006-05-17 11:54) [9]

каждый раз, разные результаты
по первому дает
от 671 до 735 чаще всего 688
по второму
от 671 до 781 чаще всего 703-719


 
Ega23 ©   (2006-05-17 11:58) [10]


> Gydvin ©   (17.05.06 11:54) [9]


Оптимизация выключена?


 
Плохиш ©   (2006-05-17 12:20) [11]


> Gydvin ©   (17.05.06 11:54) [9]
> каждый раз, разные результаты

Я плякал, а посмотреть в окно CPU не догадались? Д7 транслирует оба примера в одинаковый код, что с оптимизацией, что без оной ;-)


 
Gydvin ©   (2006-05-17 12:30) [12]

отключил

1 ~ 2035
2 ~ 2062

диагноз: они ~ одинаковы


 
Gydvin ©   (2006-05-17 12:33) [13]


> Плохиш ©   (17.05.06 12:20) [11]


а что сделать, молодой не опытный.  ))



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.06.04;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.038 c
15-1146912971
Внук
2006-05-06 14:56
2006.06.04
С праздником


15-1147085301
BAngel
2006-05-08 14:48
2006.06.04
Скачать делфи


2-1147540891
serko
2006-05-13 21:21
2006.06.04
Запуск скрипта!


15-1146854934
ArtemESC
2006-05-05 22:48
2006.06.04
Глаза...


15-1146884834
dancer
2006-05-06 07:07
2006.06.04
aDSL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский