Delphi и Стека
6 отговора
169 прегледа
Delphi и Стека
Правя една програмка със сериина комуникация,
....
Procedure OnTimer; //na 1000ms
Begin
{Tuk vikam razni obekti direktno.
obekt1.metod1(var1,var2...);
....
....
// Chetene i pisane v com porta...
end.
.....
Всичко е ОК, но само за няколко часа. Всяка сутрин я намирам забита.
Дали не се прпълва стека ?
....
Procedure OnTimer; //na 1000ms
Begin
{Tuk vikam razni obekti direktno.
obekt1.metod1(var1,var2...);
....
....
// Chetene i pisane v com porta...
end.
.....
Всичко е ОК, но само за няколко часа. Всяка сутрин я намирам забита.
Дали не се прпълва стека ?
Re: Delphi и Стека
Не е заради стека. Ако беше той щеше да получиш едно красиво изключение
На какъв windows го пускаш това?
На какъв windows го пускаш това?
Re: Delphi и Стека
Една забележка - първо опитай се да намериш алгоритъм в който да не ползваш таймер!!! До колкото помня имаше проблеми с това. Освен това сигурен ли си че процеса на комуникация продължава по малко от секунда? И няма вариант да се сгърчи и да увисне ???
Има начини много да премахнеш таймера - но това зависи от цялостния алгоритъм на програмата. Най-смислено ми се струва да отделиш цикъла в отделна нишка - и там да проверяваш за изминалото време и да стартираш комуникацията с ком-порта.
Втора забележка - опитай се да вкараш дебъг информация - примерно нещо което да ти пише във файл всяко извикване (ако е възможно). Друго нещо което може да ти помогне да изолираш проблема е да премахнеш временно комуникацията с ком-а и да стартираш програмата - след няколко часа ще разбереш от коя точно част идва проблема
.
---
Е т'ва е живот!
Има начини много да премахнеш таймера - но това зависи от цялостния алгоритъм на програмата. Най-смислено ми се струва да отделиш цикъла в отделна нишка - и там да проверяваш за изминалото време и да стартираш комуникацията с ком-порта.
Втора забележка - опитай се да вкараш дебъг информация - примерно нещо което да ти пише във файл всяко извикване (ако е възможно). Друго нещо което може да ти помогне да изолираш проблема е да премахнеш временно комуникацията с ком-а и да стартираш програмата - след няколко часа ще разбереш от коя точно част идва проблема
---
Е т'ва е живот!
Re: Delphi и Стека
... на 98 SE я пускам . . .
Понеже нямам много възможност за дебъг, ( така и не се научих да ползвам
дебъгера на делфито).
Пуснх програмта ( таимера и е в отделен тред ) и с нея пуснах
System Monitor на 98SE, и след време системата започна да реве за ресур,
Като SystemMonitora НЕ показваше нищо опасно, имах си 40MB фрее физическа. Само малко претоварен процесор.
Понеже ползвам един готов компонент за COMPORTA, си мисля че има некъв
буфер дето съхранява комуникацията и аз не съм го изключил....
... ше чета още ?
Понеже нямам много възможност за дебъг, ( така и не се научих да ползвам
дебъгера на делфито).
Пуснх програмта ( таимера и е в отделен тред ) и с нея пуснах
System Monitor на 98SE, и след време системата започна да реве за ресур,
Като SystemMonitora НЕ показваше нищо опасно, имах си 40MB фрее физическа. Само малко претоварен процесор.
Понеже ползвам един готов компонент за COMPORTA, си мисля че има некъв
буфер дето съхранява комуникацията и аз не съм го изключил....
... ше чета още ?
Re: Delphi и Стека
Хванх я !
Пуснах да гледам и тредовете и какво да видя ! 230 треда и продължават да растът ....
Пуснах да гледам и тредовете и какво да видя ! 230 треда и продължават да растът ....
Re: Delphi и Стека
bau i kato se ima predwid kolko pamet "harchi" VCL za edin thred - spukana ti e rabotata :)
------------------------------
I got a COMPILER, and I'm not afraid to use it!
------------------------------
I got a COMPILER, and I'm not afraid to use it!