BarCodeReader performance issue

We used version 2.8 of Aspose.BarCode in our product. It worked fine.

Now we extended our subscription and we tried to use the latest version 5.4.
We have experienced extreme performance issues with the new version.
While version 2.8 recognised the barcodes on a simple image (attached) in 150-200 ms the new version 5.4 worked for about 4500 ms. It is about 22 times slower than the old version. The library with this speed is unusable.

We have made two console applications (.net 3.5) to test the issue. We used the following test code:

Program.cs for version 2.8:

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using Aspose.BarCode;

namespace BarCodeConsole28
{
internal class Program
{
private static void Main(string[] args)
{
var lic = new License();
lic.SetLicense(“Aspose.BarCode.lic”);

        <span style="color:blue;">var</span> reader = <span style="color:blue;">new</span> <span style="color:#2b91af;">BarCodeReader</span>(<span style="color:#a31515;">"test.tif"</span>);

        reader.BarCodeReadType = <span style="color:#2b91af;">BarCodeReadType</span>.Code128;

        <span style="color:blue;">var</span> sw = <span style="color:#2b91af;">Stopwatch</span>.StartNew();
        <span style="color:blue;">var</span> barcodeInfo = reader.Read();
        sw.Stop();

        <span style="color:blue;">foreach</span> (<span style="color:blue;">var</span> barCodeInfo <span style="color:blue;">in</span> barcodeInfo)
        {
            <span style="color:#2b91af;">Console</span>.WriteLine(<span style="color:#a31515;">"BarCode: </span><span style="color:mediumseagreen;">{0}</span><span style="color:#a31515;">"</span>, barCodeInfo.CodeText);
        }

        <span style="color:#2b91af;">Console</span>.WriteLine(<span style="color:#a31515;">"Read: </span><span style="color:mediumseagreen;">{0}</span><span style="color:#a31515;"> ms"</span>, sw.ElapsedMilliseconds);

        <span style="color:#2b91af;">Console</span>.ReadKey();
    }
}

}

Program.cs for version 5.4:

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using Aspose.BarCodeRecognition;

namespace BarCodeConsole54
{
class Program
{
static void Main(string[] args)
{
var lic = new License();
lic.SetLicense(“Aspose.BarCode.lic”);

        <span style="color:blue;">var</span> reader = <span style="color:blue;">new</span> <span style="color:#2b91af;">BarCodeReader</span>(<span style="color:#a31515;">"test.tif"</span>, <span style="color:#2b91af;">BarCodeReadType</span>.Code128);

        <span style="color:blue;">var</span> sw = <span style="color:#2b91af;">Stopwatch</span>.StartNew();
        <span style="color:blue;">while</span> (reader.Read())
        {
            <span style="color:#2b91af;">Console</span>.WriteLine(<span style="color:#a31515;">"BarCode: </span><span style="color:mediumseagreen;">{0}</span><span style="color:#a31515;">"</span>, reader.GetCodeText());
        }
        sw.Stop();
        <span style="color:#2b91af;">Console</span>.WriteLine(<span style="color:#a31515;">"Read: </span><span style="color:mediumseagreen;">{0}</span><span style="color:#a31515;"> ms"</span>, sw.ElapsedMilliseconds);

        <span style="color:#2b91af;">Console</span>.ReadKey();
    }
}

}

Please help us to resolve this performance issue.

Hi Ervin,


Thank you for your details. I tested your scenario with the latest version of Aspose.BarCode for .NET 5.4.0 and I observed that it takes 7628 ms on my side. Please note that we release a new version of Aspose.BarCode every month. Each new release contains many improvements, bug fixes and new features. So comparing speed has no sense, Aspose.BarCode for .NET 2.8.0 is quite old, also these two versions are separated by years, even not months. In addition, we’re working to improve the quality and performance of the component on priority basis. I hope you understand.

I have logged this problem for investigation purposes. The task has been logged under ticket id BARCODENET-33440. We will soon investigate the cause. Also, you will be notified once the fix for your problem is available for public use.

Please let me know in case of further assistance and comments.

Hello Imran,


I would like to provide you more test results to help your work. We downloaded all available versions to find one which works fast enough and recognises the barcode on the previously attached image.
The test application was the same we used in the previous test (5.4). We just replaced the referenced Aspose.BarCodeRecognition.dll. The test application was compiled to x86.

The results:

v4.6: barcode not found, 4832 ms
v4.7: barcode not found, 1918 ms
v4.8: barcode not found, 1800 ms
v4.9: barcode not found, 10999 ms
v5.0: barcode not found, 6494 ms
v5.1: barcode not found, 4104 ms
v5.2: barcode not found, 4140 ms
v5.3: barcode found, 4423 ms
v5.4: barcode found, 4615 ms

Note: When we tried to compile to Any CPU or x64, it become more slower,

Now we can not use these versions to recognise our barcodes.

Hi Ervin,


Thank you for sharing these details. I have tested your scenario with 64 bits operating system and found it more slower. I have passed this information to our development team. As soon as we have made some significant progress, we would be more than happy to update you with the status of correction. We are sorry for this inconvenience.

We just ran into this exact issue. Going from 3.7 of Aspose.Barcoderecognition to 5.4 results in a read performance hit per page of roughly 4 seconds. This is a huge performance hit when factored across multiple pages of multiple documents and renders the toolkit virtually unusable. Processes that took under a minute previously now take more than 10 minutes using the exact same code on our side.


Please advise if there will be a fix for this or if we need to find an alternate recognition toolkit for our barcode needs.

Hi Brain,


Thanks for your inquiry. It is to update you that we have planned to include the fix of issue id BARCODENET-33440 in our Aspose.BarCode for .NET release 5.5.0 which is expected at the start of the next week. Second, It would be great if you can share sample barcode images because there are several other factors contributing in the delay, like the presence of noise in the image, skewed barcode labels, punch holes/white spots etc. Severity of one such factor or a combination of two or more makes it difficult for the BarCodeRecognition algorithm to scan a barcode in time.

I can’t release the specific images I was testing with for confidentiality. I may have some other samples that demonstrate the same behavior. I will check on that.



Do you have any idea what type of performance gains the 5.5 version will display?

Hi Brain,


Thanks for your inquiry. I would like to update you that the above issue is specific to the barcode image shared by the customer. We have already logged a task under ticket id BARCODENET-33434 to improve the overall recognition performance. I’m afraid. The performance issue is not yet resolved. It is not feasible for us to share the idea about improving performance levels because our development team is analyzing to optimize the recognition as much as possible. We have also planned to include the fix of issue id BARCODENET-33434 in our Aspose.BarCode for .NET 5.5.0. Your request has been linked to the appropriate issue.

Are there any updates here? I have another separately reported issue where BarcodeReader.Read() runs for 10 minutes on a single page tiff before it crashes with an out of memory exception.

Hi Brain,

Thanks for the information. I'm afraid. These issues are not yet resolved. We were making some overall improvements. So these two issues should get better. Aspose.BarCode for .NET release 5.5.0 was expected at the start of the previous week but due to some bug fixes we shifted it a bit. I will let you know about the fix of these two issues within this week.

Second, I found an old forum thread here where you have reported the barcode recognition problem in the tiff file format. I would like to update you that it had been fixed in the earlier version of Aspose.BarCode for .NET 4.6.0. I tested it with the latest version of Aspose.BarCode for .NET 5.4.0 and now it was taking 13 seconds to be recognized on my side. Please confirm that is it the thread you are talking about? If not please share the forum thread or ticket id.

We're sorry for your inconvenience.

The issues I am talking about have not been logged. These are new issues.



We have multiple customers in a state where they basically can’t work as a result of either crashing coming out of the barcode recognition or performance at a point that makes it unusable. All of these issues did not surface until we upgraded to the latest barcoderecognition dll. At the moment, we are backing out the toolkit update to a version where these issues did not exist and we will need to decide how to proceed from there.

Hi Brain,

Thanks for the information. I'm afraid. I would like to update you that these two issues have been scheduled for the next release of Aspose.BarCode for .NET 5.5.0. Our development team is working hard to resolve these issues. Second, we encourage our customers to share problematic barcode samples with us. It will help our development team to fix them in the latest releases.

The issues you have found earlier (filed as BARCODENET-33440) have been fixed in this update.


This message was posted using Notification2Forum from Downloads module by Aspose Notifier.

Hi Team,

We are using an age-old version of Aspose.barcode.dll, version 1.2.5.0

When updated to 23.1 version getting below errors.
existingCode.png (85.8 KB)

Please help me to deals with these obsoleted codes.

@Febinbabu,

Aspose.BarCode APIs have been optimized and changed over the years to make the product more robust and feature rich. Since you are using an older version (e.g., 1.2.5.0) of the API, so you need to update your (older) code segments in accordance with newer APIs. I recommend you to kindly see and browse Aspose.BarCode for .NET documentation with examples for your reference. Also, see the Aspose.BarCode for .NET API Reference pages for complete reference.