A little further explanation. We had spammer robots automatically signing up with a huge number of accounts each day. They never post anything, because they would be quickly reported by the members and removed.
What they did do was attempt to put links to commercial sites in their signature field. We spent weeks removing thousands of these, and found a way to stop the links, but let the robots keep signing up. Finally, there were so many that most of the members online at any time were the spam robots.
We modified the new member signup method to require a code posted in the site information. This means that only human spammers can sign up, and only a few bother.
So, how do we get rid of those 300,000 accounts, most of which are obvious spammers. There are far too many to remove one at a time, or even 25 at a time, so we used a feature in the forum software that lets us remove accounts of those who have not logged in, and have zero posts for the past "X" days.
Then we did just that, removing one days worth at a time starting at 360 days. Even removing one day's worth brings the forum to a halt for 1-3 minutes while 1000-3000 accounts are removed, so I usually did it once a day when there was little posting going on.
At the same time, I used the administrator search facility to find recent spammers by e-mail, IP, etc and removed thousands of the most active ones that way. I worked at it for a hour or more every day.
Finally, the moment came when all those with no posts and no logins in the past 45 days were gone, and I went thru every remaining member one at a time (those no posts) and removed a few hundred more that were obvious SEO spammers.
That reduced their number to what is likely just a handful that I can't detect. I'm not currently purging additional non posters, but might limit them to 6 months at some future date. The main thrust was to remove SEO spammers, not inactive members.
Along the way, I found one member with no posts who was faithfully logging in every day to read the forum. He was one of the very first CR members. I sent him a e-mail, and he sent a nice note back saying that he just preferred to lurk. I changed his post count from zero to 10 just so he would not get caught up in a future sweep.
I now review recent new members to see if any look like spammers (they are usually obvious). Much to my surprise and delight, 9 of 10 new members start posting right away. Keep it up!!