Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.04;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.081 c
2-1148045632
tort
2006-05-19 17:33
2006.06.04
Запуск программы


15-1147325915
Ega23
2006-05-11 09:38
2006.06.04
С Днём рождения! 11 мая


5-1132857844
dvp_Dima
2005-11-24 21:44
2006.06.04
Инкапсуляция и взаимодействие


15-1147046790
Точка Ру
2006-05-08 04:06
2006.06.04
Есть ли функция удаления всех комментариев?


2-1147762632
ttt_111
2006-05-16 10:57
2006.06.04
Работа с QRreport.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский