Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Who can help answer why this is #3161

Open
jxh150535011 opened this issue Apr 7, 2024 · 0 comments
Open

Who can help answer why this is #3161

jxh150535011 opened this issue Apr 7, 2024 · 0 comments

Comments

@jxh150535011
Copy link

    console.time('toDataURL');
    const base64 = canvas.toDataURL('image/png', 1.0);
    convertBase64UrlToBlob(base64);  // Removing this sentence is faster
    console.timeEnd('toDataURL');

    const blob: any = await new Promise(resolve => {
      console.time('toBlob');
      return canvas.toBlob((blob) => {
        console.timeEnd('toBlob');
        resolve(blob)
      }, 'image/png', 1.0)
    });

The above results show that the toBlob method does not have any advantages. On the contrary, removing the conversion code from toDataURL will result in a more significant improvement. If the execution order of toDataURL and toBlob is swapped, toDataURL will clearly have an advantage over toBlob (even if the conversion code is not removed). I have searched for a lot of content and many articles have pointed out that toBlob not only has advantages in memory and performance. But my test results do not support this conclusion, and often toDataURL performs better

Result of every hundred requests:
toDataURL: 2978ms
toBlob: 3040ms

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant