Why Is My Consignment Software Slow?

Slow Consignment Software

It’s likely not your computer, nor your network.  Even on the fastest hardware, using Solid State Drives (SSDs), specific screens or even the entirety of your consignment software can respond slowly and show ‘Not Responding‘.

Why?  It’s the programmer’s fault — blame your software vendor.  When you write software, if you don’t take one additional step, then your software will not be multi-threaded.  The result is, if the software has to wait for something, the program will appear to lock-up and you won’t be able to click or type, until the program has finished the task.  Sound familiar?

Let’s show an example of this.

I wrote a little test application, which counts to 10.  Watch what happens if I don’t do anything to make it multi-threaded:

Non-Multi-Threaded Example
Non-Multi-Threaded Example

Notice how you can’t see it count up to 10?  You have to wait 10 seconds until you see the results.  Notice how I could click Button #1 and Button #2 before I told it to count to 10, but once I told it to start counting, Button #1 and Button #2 no longer worked?

Now let’s take a look at how a multi-threaded application handles the same event:

Multi-Threaded Example
Multi-Threaded Example

Notice how you can actually see it count up to 10 now?  I can also click my other buttons while it’s counting.  i.e. the program responds and doesn’t make me wait until it’s finished doing stuff.  😉

How does one make an application multi-threaded?  First, let’s look at the code as it is, without making it multi-threaded:

Non-Multi-Threaded Code Example
Non-Multi-Threaded Code Example | Click to Enlarge

Now let’s look at the same code, once it’s been made to be multi-threaded:

Multi-Threaded Code Example
Multi-Threaded Code Example | Click to Enlarge

If this looks like gibberish to you, no worries.  🙂  Let’s take a closer look.

In our non-multi-threaded example, when we click our ‘Go’ button, it just starts what it’s been told to do, without any consideration as to what happens while it’s counting:

In our multi-threaded example, notice when we click our button, it doesn’t just “go do stuff.”  Instead, it has a simple command that tells it, “Hey, go get this little piece of code and run it in its own thread.”:

The result, is an application that responds while it’s busy.  One line of code is all it took.

So why wouldn’t a programmer utilize this to prevent their software from locking-up while it’s busy?  I can only imagine, but as you can see in the examples above, it’s not because it takes a long time to do, nor is it complicated, nor does it cost anything.  It’s simply an approach to application design and some take the rough, “just go do this” approach, while others are sensitive to how their users’ experience will be.  They don’t want their users to have a bad experience, which leads them call in and complain about the software locking-up.  If a user has to call to report an issue, it takes time out of everyone’s day.

Now, there are some factors that can lead to slow performance — e.g. a really old processor, or a really slow network — but that’s the whole point.  i.e. The programmer has to should take into consideration, what happens when her/his software encounters environments that can have a negative impact on the software.

In summary, applications that lock-up, are something most any programmer wants to avoid.  It only takes a line of code to change this, so why not utilize this feature as much as possible?  Good question.  😉

I hope this sheds some light on why consignment software stops responding, while it’s busy.

I am a Software Developer, System Administrator, and consignment software specialist. I currently manage hundreds of consignment workstations, point of sale systems, and database servers all across North America and I am the developer of Peeps' Software, Peeps2Go, and Peeps' Consignor Login for iOS and Android. I've been helping consignment & resale store-owners since 2003. I started The Computer Peeps in February of 2010. Peeps' Software launched in 2016 and is now on hundreds of systems all across North America. I have successfully converted dozens of stores from all of the major consignment software systems. After 20 years of working with consignment stores, I understand the unique challenges consignment & resale store-owners face. From electrical issues in old buildings or strip malls, to advocating for them when their old consignment software keeps crashing.

Leave a Comment

Your email address will not be published. Required fields are marked *

*
*

Back To Top