Watch, Follow, &
Connect with Us

For forums, blogs and more please visit our
Developer Tools Community.


Welcome, Guest
Guest Settings
Help

Thread: Memory leaks



Permlink Replies: 26 - Last Post: Nov 15, 2017 6:36 AM Last Post By: Chad Hower
Justin Case

Posts: 67
Registered: 8/4/13
Memory leaks
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 5, 2017 4:36 PM
Hi guys

I've been working on a nameserver using indy for a while and noticed it was
having massive memory leakage - if left running for three days it would have
leaked 100mb!

So i've got fastmm installed and been tinkering and found several places
where i needed to destroy a dns component. This brought down my leaked dns
components to zero.

There are some other minor leaks but only a couple of components here and
there - nothing substantial that will increase with multiple dns lookups so
they're not important.

I'm having a problem. Even now i've cleared out the leakage with each dns
request, my program is still increasing in size in the windows task manager
when i start up chrome with 20 odd tabs. It will go from around 1mb to over
3mb on win7. On WinXP (virtual) it will start at around 8mb and increase to
around 9.5mb.

What is causing this? Is it a windows memory management gremlin at work that
my app has no control over or is there something else i should be thinking
about?

Thanks
Peter Below

Posts: 1,227
Registered: 12/16/99
Re: Memory leaks
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 5, 2017 11:34 PM   in response to: Justin Case in response to: Justin Case
Justin Case wrote:

Hi guys

I've been working on a nameserver using indy for a while and noticed
it was having massive memory leakage - if left running for three days
it would have leaked 100mb!

So i've got fastmm installed and been tinkering and found several
places where i needed to destroy a dns component. This brought down
my leaked dns components to zero.

There are some other minor leaks but only a couple of components here
and there - nothing substantial that will increase with multiple dns
lookups so they're not important.

I'm having a problem. Even now i've cleared out the leakage with each
dns request, my program is still increasing in size in the windows
task manager when i start up chrome with 20 odd tabs. It will go from
around 1mb to over 3mb on win7. On WinXP (virtual) it will start at
around 8mb and increase to around 9.5mb.

What is causing this? Is it a windows memory management gremlin at
work that my app has no control over or is there something else i
should be thinking about?

Forget it, task manager shows memory the application has obtained from
the OS, but the Delphi memory manager gets such allocations in large
blocks, which it then partitions into the smaller blocks the program
requests from it. As long as even one of these small blocks is in use
the memory manager cannot return the large block to the OS, and even if
all of the block is currently unused it may not return it to the OS for
performance reasons.

You only have to worry if you have a case like the one you observed
before: a steady increase of allocated memory. The usual pattern you
will see in a long-running process is a slow increase of allocated
memory that eventually tapers off and reaches a kind of steady state.

--
Peter Below
TeamB

Alex Belo

Posts: 626
Registered: 10/8/06
Re: Memory leaks
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 6, 2017 8:11 AM   in response to: Peter Below in response to: Peter Below
Peter Below wrote:

You only have to worry if you have a case like the one you observed
before: a steady increase of allocated memory.

BTW It is strange but not all programmers know that task manager has
additional useful counters to check:
- descriptors
- threads
- user objects
- GDI objects

--
Alex
Justin Case

Posts: 67
Registered: 8/4/13
Re: Memory leaks
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 6, 2017 11:57 AM   in response to: Alex Belo in response to: Alex Belo
"Alex Belo" <b dot a dot v at inbox dot ru> wrote in message
news:944627 at forums dot embarcadero dot com...
BTW It is strange but not all programmers know that task manager has
additional useful counters to check:
- descriptors
- threads
- user objects
- GDI objects

What i'm struggling to get my head around is the different memory columns it
has - working set, private working set, commit, virtual....
Justin Case

Posts: 67
Registered: 8/4/13
Re: Memory leaks
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 6, 2017 11:56 AM   in response to: Peter Below in response to: Peter Below
"Peter Below" <peter dot below at online dot de> wrote in message
news:944542 at forums dot embarcadero dot com...
Justin Case wrote:

Hi guys

I've been working on a nameserver using indy for a while and noticed
it was having massive memory leakage - if left running for three days
it would have leaked 100mb!

So i've got fastmm installed and been tinkering and found several
places where i needed to destroy a dns component. This brought down
my leaked dns components to zero.

There are some other minor leaks but only a couple of components here
and there - nothing substantial that will increase with multiple dns
lookups so they're not important.

I'm having a problem. Even now i've cleared out the leakage with each
dns request, my program is still increasing in size in the windows
task manager when i start up chrome with 20 odd tabs. It will go from
around 1mb to over 3mb on win7. On WinXP (virtual) it will start at
around 8mb and increase to around 9.5mb.

What is causing this? Is it a windows memory management gremlin at
work that my app has no control over or is there something else i
should be thinking about?

Forget it, task manager shows memory the application has obtained from
the OS, but the Delphi memory manager gets such allocations in large
blocks, which it then partitions into the smaller blocks the program
requests from it. As long as even one of these small blocks is in use
the memory manager cannot return the large block to the OS, and even if
all of the block is currently unused it may not return it to the OS for
performance reasons.

That makes sense however as soon as the udp thread is done, it frees off the
memory it was using so surely this memory should be freed?

You only have to worry if you have a case like the one you observed
before: a steady increase of allocated memory. The usual pattern you
will see in a long-running process is a slow increase of allocated
memory that eventually tapers off and reaches a kind of steady state.

The app has now been running since last night. Having closed my chrome a
couple of times to stop any ajax requests etc causing further dns lookups
and having left it overnight it did drop from 9mb last night to around 7mb
but I've noticed that it is still leaking memory slowly but surely. It's now
at nearly 18mb since reopening chrome hours ago then closing and reopening.

The app is a dns / nameserver for the local network to server names such as
admin.lan, beta.<domain>.lan etc for local testing of sites on multiple
domains / devices before being uploaded to their live servers and it is also
recursive looking up external domains too. The idea being that my wamp
install can run a nameserver 24/7 to service the network (some locally
hosted sites won't be uploaded but need to be available on anymachine). If
it is going to keep leaking memory like this for no apparent reason without
freeing it then i'm going to need to find another way because this is not
acceptable. I'm pretty sure BIND doesn't continue to swell like this and
that runs for months at a time all over the world. What seems to be
happening with my app is that its using memory, freeing it, reporting no
further leakage at the end of running but not freeing memory "just because".
It's compiled in D6 if that makes any difference? (It's all i have other
than lazarus).

What is the way forward here?

Thanks,

JC
Justin Case

Posts: 67
Registered: 8/4/13
Re: Memory leaks - Solved - i think
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 6, 2017 1:48 PM   in response to: Justin Case in response to: Justin Case
I'm a fool and deserve a public flogging.

When i moved the app over to a shared folder on my W7 machine i forgot that
isn't where the service runs from and that the service runs from another
folder i normally copy it over to.

I've now deleted that shared folder and shared the other folder where the
app should be located instead. I'm happy to say that after copying over the
two dlls required for fastmm, the app seems to be running without leaking!
(well so far anyway).

I think this is now solved!

Thanks for your help :)

JC

"Justin Case" <questorx1998-embar at yahoo dot com> wrote in message
news:944652 at forums dot embarcadero dot com...
"Peter Below" <peter dot below at online dot de> wrote in message
news:944542 at forums dot embarcadero dot com...
Justin Case wrote:

Hi guys

I've been working on a nameserver using indy for a while and noticed
it was having massive memory leakage - if left running for three days
it would have leaked 100mb!

So i've got fastmm installed and been tinkering and found several
places where i needed to destroy a dns component. This brought down
my leaked dns components to zero.

There are some other minor leaks but only a couple of components here
and there - nothing substantial that will increase with multiple dns
lookups so they're not important.

I'm having a problem. Even now i've cleared out the leakage with each
dns request, my program is still increasing in size in the windows
task manager when i start up chrome with 20 odd tabs. It will go from
around 1mb to over 3mb on win7. On WinXP (virtual) it will start at
around 8mb and increase to around 9.5mb.

What is causing this? Is it a windows memory management gremlin at
work that my app has no control over or is there something else i
should be thinking about?

Forget it, task manager shows memory the application has obtained from
the OS, but the Delphi memory manager gets such allocations in large
blocks, which it then partitions into the smaller blocks the program
requests from it. As long as even one of these small blocks is in use
the memory manager cannot return the large block to the OS, and even if
all of the block is currently unused it may not return it to the OS for
performance reasons.

That makes sense however as soon as the udp thread is done, it frees off
the memory it was using so surely this memory should be freed?

You only have to worry if you have a case like the one you observed
before: a steady increase of allocated memory. The usual pattern you
will see in a long-running process is a slow increase of allocated
memory that eventually tapers off and reaches a kind of steady state.

The app has now been running since last night. Having closed my chrome a
couple of times to stop any ajax requests etc causing further dns lookups
and having left it overnight it did drop from 9mb last night to around 7mb
but I've noticed that it is still leaking memory slowly but surely. It's
now at nearly 18mb since reopening chrome hours ago then closing and
reopening.

The app is a dns / nameserver for the local network to server names such
as admin.lan, beta.<domain>.lan etc for local testing of sites on multiple
domains / devices before being uploaded to their live servers and it is
also recursive looking up external domains too. The idea being that my
wamp install can run a nameserver 24/7 to service the network (some
locally hosted sites won't be uploaded but need to be available on
anymachine). If it is going to keep leaking memory like this for no
apparent reason without freeing it then i'm going to need to find another
way because this is not acceptable. I'm pretty sure BIND doesn't continue
to swell like this and that runs for months at a time all over the world.
What seems to be happening with my app is that its using memory, freeing
it, reporting no further leakage at the end of running but not freeing
memory "just because". It's compiled in D6 if that makes any difference?
(It's all i have other than lazarus).

What is the way forward here?

Thanks,

JC
Adem Meda

Posts: 495
Registered: 12/28/98
Re: Memory leaks
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 6, 2017 3:43 PM   in response to: Justin Case in response to: Justin Case
What is the way forward here?

You might want to try Synapse (instead of Indy).

It works on Lazarus too.
Remy Lebeau (Te...


Posts: 9,447
Registered: 12/23/01
Re: Memory leaks
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 6, 2017 4:12 PM   in response to: Adem Meda in response to: Adem Meda
Adem Meda wrote:

You might want to try Synapse (instead of Indy).

Why?

It works on Lazarus too.

So does Indy.

--
Remy Lebeau (TeamB)
Adem Meda

Posts: 495
Registered: 12/28/98
Re: Memory leaks
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 6, 2017 5:54 PM   in response to: Remy Lebeau (Te... in response to: Remy Lebeau (Te...
Remy Lebeau (TeamB) wrote:

Adem Meda wrote:

You might want to try Synapse (instead of Indy). No dependency on
exceptions that throws you off during debugging.

Why?

I have always found Synapse easier to debug.

It works on Lazarus too.

So does Indy.

Yes. It does --if you're lucky (this applies to Delphi more than Lazarus).

If not, you'll spend a lot of time chasing what has changed and why even for
minor version changes.

I don't remember a single instance when I could simply recompile some app that
used Indy. Every time I did that, something has changed (removed/renamed etc)
in Indy.

Mind you, I haven't used Indy for a few years; it might have none of these
nowadays. But, I doubt it.
Justin Case

Posts: 67
Registered: 8/4/13
Re: Memory leaks
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 10, 2017 8:08 AM   in response to: Adem Meda in response to: Adem Meda
"Adem Meda" <adem dot meda at gmail dot com> wrote in message
news:944688 at forums dot embarcadero dot com...
Remy Lebeau (TeamB) wrote:

Adem Meda wrote:

You might want to try Synapse (instead of Indy). No dependency on
exceptions that throws you off during debugging.

Why?

I have always found Synapse easier to debug.

Thing is that Indy is free. Last time I looked at Synapse it wasn't. I'm a
hobbyist coder so I don't have a budget for 3rd party component sets.

Indy is free. Remy's tech support is too. Sure I'll agree Indy can be hit
and miss here and there but Remy always does his best to help.

The problem indy has though is that Remy seems to be the only coder who ever
works on it. I expect Synapse comes from a software house with multiple paid
coders who are afforded the luxury of earning money for their efforts.

It works on Lazarus too.

So does Indy.

Yes. It does --if you're lucky (this applies to Delphi more than Lazarus).

If not, you'll spend a lot of time chasing what has changed and why even
for
minor version changes.

I don't remember a single instance when I could simply recompile some app
that
used Indy. Every time I did that, something has changed (removed/renamed
etc)
in Indy.

I typically don't bother upgrading Indy. I was still using v9 until a short
while back despite Remy pleading with me repeatedly to upgrade. I only gave
in to his demands due to the lack of unicode support in v9 however it was
much easier to use than v10. The real problem is that while there is
documentation, it's not always up to date and even then the docs often make
no sense. Compare the sort of language used in the indy and delphi help to
the easy going language on the php manual... massive difference.
Roy Lambert

Posts: 1,063
Registered: 8/7/01
Re: Memory leaks
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 10, 2017 8:27 AM   in response to: Justin Case in response to: Justin Case
Justin

Thing is that Indy is free. Last time I looked at Synapse it wasn't. I'm a
hobbyist coder so I don't have a budget for 3rd party component sets.

Indy is free. Remy's tech support is too. Sure I'll agree Indy can be hit
and miss here and there but Remy always does his best to help.

Indy under Remy is a LOT better than it used to be. I went from Indy to Mail2000 to Synapse. The move to Synapse is over a decade ago and in all the time I've used it I've never been asked for money.

Its a long time since I asked for support and would say that Lukas Gebauer.is pretty good.

The problem indy has though is that Remy seems to be the only coder who ever
works on it. I expect Synapse comes from a software house with multiple paid
coders who are afforded the luxury of earning money for their efforts.

Other's do contribute but Synapse is https://www.ararat.cz/synapse/doku.php I could be wrong but I think Ararat is Lukas so its very similar to Indy

Old memories say I have to support Adem regarding debugging. I spent days trying to get Indy to work for email incluing a couple trying to follow through over 500,000 lines of code/function calls. Eventually found the bug but still couldn't get it to work hence Mail2000. In Remy's custody I'm sure its a lot better.

Roy Lambert
Adem Meda

Posts: 495
Registered: 12/28/98
Re: Memory leaks
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 12, 2017 5:44 AM   in response to: Roy Lambert in response to: Roy Lambert
Roy Lambert wrote:

Indy under Remy is a LOT better than it used to be. I
went from Indy to Mail2000 to Synapse. The move to
Synapse is over a decade ago and in all the time I've
used it I've never been asked for money.

I agree that Indy under Remy is a lot better.

Indeed, the fact that Remy is at the helm (so to speak) prevents me from using
expletives; Remy has been so much help to me/us over the years that it just
wouldn't be proper.

Regarding winsock libraries I have used over the years, I really cannot
remember much. I think I must have kissed every single frog out there.

IIRC, originally, Indy didn't wasn't bundled with Delphi. There was something
else, which IIRC wasn't supported for some reason or another.

At that time, event driven stuff was the craze, and Indy came to the scene
offering just that. As I too was crazy about event driven, then, I jumped on
the wagon.

Then, things started to disappoint.

Using exceptions messed up debugging. But, I could put up with that, if it
weren't for the fact that the Indy project seemed lost focus and discipline.

Kept changing here and there, in minor ways mostly, but almost always causing
headaches, nonetheless.

I started looking for an alternative. Synapse was, at that time, in its early
stages --probably a beta.

At first I resisted a lot since it used blocking. That made it old-fashioned in
my eyes.

Then, after compiling and running a few demos, it turned out to be easier.

Other's do contribute but Synapse is https://www.ararat.cz/synapse/doku.php I
could be wrong but I think Ararat is Lukas so its
very similar to Indy

I vaguely remeber /helping/ Lukas by setting up a Linux server for him to test
his code against some server. It is really nothing to talk about --I don't even
remeber the details; and it only lasted a couple of days or so.

Other than that, no, I haven't contributed in any material form. Perhaps, I
should put him/Synapse in my will :)

I spent days trying to get Indy to work for email incluing
a couple trying to follow through over 500,000 lines
of code/function calls.

I think it is a pedigree thing. The design choices made at the very beginning
makes it propbably impossible now to alter without breaking everyone else's
code.
Roy Lambert

Posts: 1,063
Registered: 8/7/01
Re: Memory leaks
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 13, 2017 1:29 AM   in response to: Adem Meda in response to: Adem Meda
Adem


At that time, event driven stuff was the craze, and Indy came to the scene
offering just that. As I too was crazy about event driven, then, I jumped on
the wagon.

I remember deterministic code with great fondness. The ability to actually follow through code and know at any time just what was going to happen and in what sequence it would happen was very comforting.

Kept changing here and there, in minor ways mostly, but almost always causing
headaches, nonetheless.

And of course don't forget the "fix that bug but introduced two new ones" system.

I started looking for an alternative. Synapse was, at that time, in its early
stages --probably a beta.

I switched to Mail2000 for the business app I was developing, but was used OE for personal mail / news. I switched to Synapse when I got fed up of OE corrupting the news files. Synapse never has.

Roy
Remy Lebeau (Te...


Posts: 9,447
Registered: 12/23/01
Re: Memory leaks
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 13, 2017 10:08 AM   in response to: Adem Meda in response to: Adem Meda
Adem Meda wrote:

IIRC, originally, Indy didn't wasn't bundled with Delphi.

Indy has been bundled with Delphi since aroound D6.

There was something else, which IIRC wasn't supported for some reason
or another.

You might be thinking of NetMasters.

At that time, event driven stuff was the craze, and Indy came to the
scene offering just that. As I too was crazy about event driven,
then, I jumped on the wagon.

Indy has never been event driven, and has always used blocking sockets.
Maybe Winshoes (Indy's predecessor) was different? I don't know.
Before my time.

--
Remy Lebeau (TeamB)
Dalija Prasnikar

Posts: 2,325
Registered: 11/9/99
Re: Memory leaks
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 13, 2017 11:07 AM   in response to: Remy Lebeau (Te... in response to: Remy Lebeau (Te...
Remy Lebeau (TeamB) wrote:
Adem Meda wrote:

IIRC, originally, Indy didn't wasn't bundled with Delphi.

Indy has been bundled with Delphi since aroound D6.

Something like that. I switched to Indy in D7 and I used something else
in D5 - also bundled, but I cannot remember what it was.

There was something else, which IIRC wasn't supported for some reason
or another.

You might be thinking of NetMasters.

At that time, event driven stuff was the craze, and Indy came to the
scene offering just that. As I too was crazy about event driven,
then, I jumped on the wagon.

Indy has never been event driven, and has always used blocking sockets.
Maybe Winshoes (Indy's predecessor) was different? I don't know.
Before my time.

That something in D5 was event driven.

--
Dalija Prasnikar
Embarcadero MVP
https://dalija.prasnikar.info/
Delphi Memory Management for Classic and ARC Compilers
https://dalija.prasnikar.info/delphimm/
Roy Lambert

Posts: 1,063
Registered: 8/7/01
Re: Memory leaks
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 14, 2017 2:14 AM   in response to: Remy Lebeau (Te... in response to: Remy Lebeau (Te...
Remy

I think it was D4 when I tried Indy and I remember having to download it

Roy Lambert

Chad Hower

Posts: 613
Registered: 3/2/07
Re: Memory leaks
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 14, 2017 7:07 AM   in response to: Remy Lebeau (Te... in response to: Remy Lebeau (Te...
On 11/13/2017 2:08 PM, Remy Lebeau (TeamB) wrote:
Indy has never been event driven, and has always used blocking sockets.
Maybe Winshoes (Indy's predecessor) was different? I don't know.
Before my time.

No. Indy was never event driven. Not even when it was VB3 before Delphi
was released.
Adem Meda

Posts: 495
Registered: 12/28/98
Re: Memory leaks
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 15, 2017 5:04 AM   in response to: Remy Lebeau (Te... in response to: Remy Lebeau (Te...
Remy Lebeau (TeamB) wrote:

Adem Meda wrote:

IIRC, originally, Indy wasn't bundled with Delphi.

Indy has been bundled with Delphi since aroound D6.

Though I had dabbled with TP for a couple of days or so, it never appealed to
me. Then, for a project that I needed to be done fast on Windows, I used on to
VB.

It was OK, but then I discovered D1 and stuck with Delphi ever since. So, it
could be any version after (and including) D1.

There was something else, which IIRC wasn't supported for some reason
or another.

You might be thinking of NetMasters.

Quite likely.

Indy has never been event driven, and has always used blocking sockets.
Maybe Winshoes (Indy's predecessor) was different? I don't know.
Before my time.

I meant the VCL-way, methods --object methods. You initiate an action somewhere
in your code and response comes up elsewhere through some method.
Dalija Prasnikar

Posts: 2,325
Registered: 11/9/99
Re: Memory leaks
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 15, 2017 5:16 AM   in response to: Adem Meda in response to: Adem Meda
Adem Meda wrote:

Indy has never been event driven, and has always used blocking sockets.
Maybe Winshoes (Indy's predecessor) was different? I don't know.
Before my time.

I meant the VCL-way, methods --object methods. You initiate an action somewhere
in your code and response comes up elsewhere through some method.

That is still event driven design.

--
Dalija Prasnikar
Embarcadero MVP
https://dalija.prasnikar.info/
Delphi Memory Management for Classic and ARC Compilers
https://dalija.prasnikar.info/delphimm/
Chad Hower

Posts: 613
Registered: 3/2/07
Re: Memory leaks
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 15, 2017 6:36 AM   in response to: Adem Meda in response to: Adem Meda
On 11/15/2017 9:04 AM, Adem Meda wrote:
There was something else, which IIRC wasn't supported for some reason
or another.

You might be thinking of NetMasters.

Quite likely.

NetMasters was stolen Indy (before it was open sourced) and it was not
event driven either.

ICS is event driven.
Remy Lebeau (Te...


Posts: 9,447
Registered: 12/23/01
Re: Memory leaks
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 10, 2017 11:28 AM   in response to: Justin Case in response to: Justin Case
Justin Case wrote:

Thing is that Indy is free. Last time I looked at Synapse it wasn't.

Synapse is free.

The problem indy has though is that Remy seems to be the only coder
who ever works on it.

Yes. There have been other coders over the years, but they have either
left the project, or don't contribute very often anymore.

--
Remy Lebeau (TeamB)
Justin Case

Posts: 67
Registered: 8/4/13
Re: Memory leaks
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 10, 2017 3:17 PM   in response to: Remy Lebeau (Te... in response to: Remy Lebeau (Te...
"Remy Lebeau (TeamB)" <no dot spam at no dot spam dot com> wrote in message
news:946288 at forums dot embarcadero dot com...
Justin Case wrote:

Thing is that Indy is free. Last time I looked at Synapse it wasn't.

Synapse is free.

The problem indy has though is that Remy seems to be the only coder
who ever works on it.

Yes. There have been other coders over the years, but they have either
left the project, or don't contribute very often anymore.

The unfair thing being that Chad Hower still takes all the credit for Indy
along with the "Pit Crew" while you're the one doing the work and providing
the support.

I admire your dedication Remy.
Remy Lebeau (Te...


Posts: 9,447
Registered: 12/23/01
Re: Memory leaks
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 10, 2017 6:59 PM   in response to: Justin Case in response to: Justin Case
Justin Case wrote:

The unfair thing being that Chad Hower still takes all the credit for
Indy along with the "Pit Crew" while you're the one doing the work
and providing the support.

Chad created Indy, so he has the right to take credit for it. And he
is still involved with Indy in an adminstrative role, just not as a
coder.

--
Remy Lebeau (TeamB)
Chad Hower

Posts: 613
Registered: 3/2/07
Re: Memory leaks
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 14, 2017 7:11 AM   in response to: Justin Case in response to: Justin Case
On 11/10/2017 12:08 PM, Justin Case wrote:
The problem indy has though is that Remy seems to be the only coder who ever
works on it. I expect Synapse comes from a software house with multiple paid
coders who are afforded the luxury of earning money for their efforts.

Largely because Indy is very mature and largely in maint mode for many
years now. The changes in recent years are largely to respond to changes
in Delphi (OSX etc)
Chad Hower

Posts: 613
Registered: 3/2/07
Re: Memory leaks
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 14, 2017 7:13 AM   in response to: Adem Meda in response to: Adem Meda
On 11/6/2017 9:54 PM, Adem Meda wrote:
If not, you'll spend a lot of time chasing what has changed and why even for
minor version changes.

Not true.

I don't remember a single instance when I could simply recompile some app that
used Indy. Every time I did that, something has changed (removed/renamed etc)
in Indy.

Then you jumped major versions or at least many minor versions. Things
like Unicode, .NET, OSX and other changes created large external changes
which also require changes in Indy.

The Unicode change in particular caused breaking changes to most components.
Adem Meda

Posts: 495
Registered: 12/28/98
Re: Memory leaks
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 15, 2017 5:04 AM   in response to: Chad Hower in response to: Chad Hower
Chad Hower wrote:

On 11/6/2017 9:54 PM, Adem Meda wrote:
If not, you'll spend a lot of time chasing what has changed and why even for
minor version changes.

Not true.

You're aware that you're(usually) Thank you for telling me what /my/ experience
was at the time. <g>

Still.. Given my habbit to use the latest code available, it might have been
more than one minor version change --I really cannot remember.

I do, however, remember quite vividly the frustration, especially since
there was no explanation why that something was removed.

I don't remember a single instance when I could simply recompile some app
that used Indy. Every time I did that, something has changed
(removed/renamed etc) in Indy.

Then you jumped major versions or at least many minor versions.

Things like Unicode, .NET, OSX and other changes created large
external changes which also require changes in Indy.

As I tried to tell above, yes, it might have been more than one minor version
changes.

Personally, I don't expect breaking changes until major version change which
IME is the usual 'industry practice'.

The Unicode change in particular caused breaking changes to most components.

I can deal with changes in Unicode-related code. That's not it.

It was (they were) a property or a function/procedure would suddenly
disappear with nothing obvious to (or documented) to replace it/them.

Having said all this, I don't want to come across as /totally/ ungrateful.
After all, Indy was/is a free (and open source) project and it should be
appreciated for that.

However, I still think it (the project) could have been managed better.

That assumes, obviously, you had the time and energy to focus on Indy which may
not be a correct assessment.
Chad Hower

Posts: 613
Registered: 3/2/07
Re: Memory leaks
Click to report abuse...   Click to reply to this thread Reply
  Posted: Nov 15, 2017 6:34 AM   in response to: Adem Meda in response to: Adem Meda
On 11/15/2017 9:04 AM, Adem Meda wrote:
I do, however, remember quite vividly the frustration, especially since
there was no explanation why that something was removed.

OSX, Unicode, Android... There are lots of external factors which have
caused many changes in Indy. Indy10 also took a chance to clean up old
code structures from Indy 9.
Legend
Helpful Answer (5 pts)
Correct Answer (10 pts)

Server Response from: ETNAJIVE02