Максимализација брзине и ефикасности скенирања КР кода у апликацијама .НЕТ је од суштинског значаја за реалном времену и сценарије у великој мери.Овај чланак пружа детаљан водич о томе како оптимизовати перформансе СКР скандирања користећи Асписе.БарЦод, укључујући најбоље праксе, савете за оптимизацију корак по кораку и практичне примере Ц # кодова.

Увод

Максимализација брзине и ефикасности скенирања КР кода у апликацијама .НЕТ је од суштинског значаја за реалном времену и сценарије у великој мери.Овај чланак пружа детаљан водич о томе како оптимизовати перформансе СКР скандирања користећи Асписе.БарЦод, укључујући најбоље праксе, савете за оптимизацију корак по кораку и практичне примере Ц # кодова.

Реал светски проблем

Велика или у реалном времену препознавање КР кода – као што је валидација карте на стадионима, логистичким центрима или облачним услугама – захтева оптимизовано скенирање како би се спречила латенција и прекидање ресурса.

Преглед решења

Aspose.BarCode za .NET nudi napredne kapacitete za batch, async i memorialno skeniranje.Tuniranjem vašeg ulaznog cijevi, korišćenja resursa i paralelnosti, možete postići vodeću industriju i pouzdanost.

Принципи

Пре него што почнете, уверите се да имате:

  • Visual Studio 2019 или касније
  • .NET 6.0 или новији (или .NET Framework 4.6.2+)
  • Aspose.BarCode за .NET инсталиран преко NuGet
  • Упознавање са основним Ц # асинц / паралел програмирања

PM> Install-Package Aspose.BarCode

Корак по корак оптимизација

Корак 1: Профилишете свој радни ток

Измерити перформансе базелине користећи стап сат или профил за проналажење бочица (на пример, датотеке И/О, величине слике, или ЦПУ).

var sw = Stopwatch.StartNew();
// Your scan logic
sw.Stop();
Console.WriteLine($"Elapsed: {sw.ElapsedMilliseconds} ms");

Корак 2: Употреба у меморијским токовима и улазом бацх-а

Обрада слике у меморији уместо штедње / преузимања са диска:

byte[] imgData = File.ReadAllBytes("qr_sample.png");
using (MemoryStream ms = new MemoryStream(imgData))
using (BarCodeReader reader = new BarCodeReader(ms, DecodeType.QR))
{
    foreach (BarCodeResult result in reader.ReadBarCodes())
    {
        // Process result
    }
}

Корак 3: Ограничите се на КР-само препознавање

сет DecodeType.QR да се избегне скенирање за друге врсте баркода, смањујући време сканирања.

using (BarCodeReader reader = new BarCodeReader(ms, DecodeType.QR))
{
    // Only scan for QR codes
}

Корак 4: Оптимизација резолуције слике

Користите слике које су довољно велике за препознавање, али не превелике (на пример, 300-600пк по КР).

Корак 5: Паралелно скенирање за велике боје

Коришћење Parallel.ForEach или Task.WhenAll За баццх улаз:

string[] imageFiles = Directory.GetFiles("/qrbatch", "*.png");
Parallel.ForEach(imageFiles, file =>
{
    using (var ms = new MemoryStream(File.ReadAllBytes(file)))
    using (var reader = new BarCodeReader(ms, DecodeType.QR))
    {
        foreach (var result in reader.ReadBarCodes())
        {
            // Process result
        }
    }
});

Корак 6: Одмах распоредити ресурсе

Слободан ресурс узимајући у обзир BarCodeReader и струје што је пре могуће.

Корак 7: Мониторинг и лог перформансе

Пратите трајање скенирања, стопе грешака и пролаз за сваки пакет:

Console.WriteLine($"Scanned {count} codes in {sw.Elapsed.TotalSeconds} seconds");

Корак 8: Направите .NET GC и животну средину за скалирање

За велике сервере, конфигуришете .NET GC режиме (на пример, Server GC), и распоредити довољно меморије / претње за одрживу перформансе.

Потпуни пример: Паралелни бацх КР скенирање

using Aspose.BarCode.BarCodeRecognition;
using System;
using System.IO;
using System.Diagnostics;
using System.Threading.Tasks;

class Program
{
    static void Main()
    {
        string[] files = Directory.GetFiles("/qrbatch", "*.png");

        var sw = Stopwatch.StartNew();

        Parallel.ForEach(files, file =>
        {
            byte[] imgData = File.ReadAllBytes(file);
            using (var ms = new MemoryStream(imgData))
            using (var reader = new BarCodeReader(ms, DecodeType.QR))
            {
                foreach (var result in reader.ReadBarCodes())
                {
                    // Process result.CodeText
                    Console.WriteLine($"File: {file}, QR Text: {result.CodeText}");
                }
            }
        });

        sw.Stop();
        Console.WriteLine($"Total time taken: {sw.Elapsed.TotalSeconds} seconds");
    }
}

Закључак и додатни ресурси

У овом водичу, покрили смо како оптимизовати перформансе скенирања КР кода користећи Асписе.БарЦод за .НЕТ. Пратите кораке наведене горе како бисте постигли висок проток и поуздано препознавање баркода у вашим апликацијама.

Za sveobuhvatnu dokumentaciju posetite Aspose.BarCode Guide ** ili se angažujte sa zajednicom u ** Forum za bilo kakve upite.

More in this category