|
Страници по тази тема: 1 | 2 | 3 | 4 | 5 | 6 | >> (покажи всички)
Тема
|
Re: Умира ли Delphi ?
[re: пpor]
|
|
Автор | Dark Dirk (Нерегистриран) |
Публикувано | 27.02.08 16:19 |
|
Определено
Чудничко ми е какво е станало та я видях като нова тема в dir.bg
| |
Тема
|
Re: Умира ли Delphi ?
[re: Dark Dirk]
|
|
Автор | Dark Dirk (Нерегистриран) |
Публикувано | 27.02.08 16:23 |
|
А, открих го:
i have never been... lucydance 26.02.08 15:46
Някакъв спамър е качил темата най-отгоре и аз съм отговорил без да погледна
Sorry
| |
Тема
|
Re: Умира ли Delphi ?
[re: Dark Dirk]
|
|
Автор | Mиpaka (Нерегистриран) |
Публикувано | 04.03.08 13:16 |
|
Сложи си Delphi 2006 for Win32 да видиш що е то бързина. Да не говорим че за приложения, които се целят в перформънс си е задължително - поддържа многоядрени машини, докато предните версии издъхват яката там.
| |
Тема
|
Re: Умира ли Delphi ?
[re: Mиpaka]
|
|
Автор | andrew (Нерегистриран) |
Публикувано | 04.03.08 15:06 |
|
Ти слушаш ли се изобщо какви ги приказваш?
И ще ни "светнеш" ли нас неуките как точно "Delphi 2006 for Win32 поддържа многоядрени машини, докато предните версии издъхват яката там"...
А за това дали Delphi 2006 е по-бързо от 5-цата / 6-цата - по-добре ти си ги инсталирай да видиш що е бързина.
| |
Тема
|
Re: Умира ли Delphi ?
[re: andrew]
|
|
Автор |
vido (минаващ) |
Публикувано | 04.03.08 16:07 |
|
Ми то поддръжката на многоядрени машини идва от ОС-а. И на мен ми е интересно как Delphi 2006 for Win32 поддържа многоядрени машини. То Win32 приложение си е Win32 приложение. Или като крейтнеш тред му казваш да работи на другото ядро? Аз не вярвам ама де да знам
| |
Тема
|
Re: Умира ли Delphi ?
[re: andrew]
|
|
Автор | Mиpaka (Нерегистриран) |
Публикувано | 12.03.08 10:40 |
|
Значи грешката е моя (в бързината). Имах в предвид Delphi 2007. На по-нов компютър (в случая двуядрен процесор с 2GB памет) работи ЗНАЧИТЕЛНО по-бързо от Delphi 7. Друг е въпроса, че компилираните с него многонишкови приложения работят МНОГО по-добре със многоядрени процесори.
Бърз тест: компилирай едно и също просто циклещо многонишково приложение под делфи 7 и делфи 2007. После виж в таск мениджъра какъв процент от натоварването на процесора е от системни извиквания (от ОС). При делфи 7 този процент е значителен (да речем 50%) а при 2007 липсва. Хайде говори ми сега още ;) . Много бързате да нападате хората без грам да сте тествали значи.. така наизуст всеки може ;) .
| |
|
Нещо и на мене не ми стана ясно... Какво означава "просто циклещо многонишково приложение"? Имаш предвид в Execute-а на един тред да въртиш цикъл ли? Без да се вика нищо външно предполагам... Ако е така, то петдесетте процента при делфи 7 явно означават двуядрена машина и така написаната ти нишка окупира изцяло едното ядро. Това, което не ми стана ясно е, как в този случай под делфи 2007 нишката ти не окупира ядрото. Какво точно прави твоето "просто циклещо многонишково приложение"? Какви са ти нишките (TThread или работиш директно с CreateThread)? Как си управляваш натоварването на процесора - викаш ли Sleep, WaitForSingleObject и т.н.? Дай един примерен код за такова приложение, защото на мен ми се струва, че проблемът е по-скоро в теб, отколкото в делфито.
| |
Тема
|
Re: Умира ли Delphi ?
[re: andrew_nikoloff]
|
|
Автор | Mиpaka (Нерегистриран) |
Публикувано | 12.03.08 11:56 |
|
Ами моят тест беше за парсване на XML във Execute method-а, но с прост цигъл ще се получи същото. Ползвам TThread и не тествам само една нишка, която да окупира само едното ядро а примерно 20. Проблема при делфи 7 беше че голяма част от натоварването беше от system calls, което си го обяснявам че става понеже ОС-а се опитва да свърши работата (диспечизира нишките?) на делфи-то за многоядрена машина.
| |
Тема
|
Re: Умира ли Delphi ?
[re: andrew_nikoloff]
|
|
Автор | Mиpaka (Нерегистриран) |
Публикувано | 12.03.08 12:08 |
|
Следобяд ще потърся кода и ще го постна ;)
| |
|
Нещо не е в ред тази работа. Ето един примерен код, който отговаря на твоето описание:
type
TDummyThread=class(TThread)
protected
procedure Execute; override;
public
constructor Create(CreateSuspended: Boolean);
end;
...
constructor TDummyThread.Create(CreateSuspended: Boolean);
begin
inherited Create(CreateSuspended);
FreeOnTerminate := True;
end;
procedure TDummyThread.Execute;
var
i, j: Integer;
s: String;
begin
while not Terminated do
begin
for i := 0 to 1000000 do
begin
if Terminated then
Exit;
s := IntToStr(i);
j := StrToInt(s);
if i <> j then
s := 'Hm, strange...';
end;
Exit;
end;
end;
...
procedure TForm1.Button1Click(Sender: TObject);
var i: Integer;
begin
for i := 1 to 20 do
TDummyThread.Create(False);
end;
Това пуснато на двуядрена машина натоварва равномерно и двете ядра.
Не мисля, че проблема е в Делфи, но нека да видим кода...
| |
|
Страници по тази тема: 1 | 2 | 3 | 4 | 5 | 6 | >> (покажи всички)
|
|
|