tdlib / td

Cross-platform library for building Telegram clients
https://core.telegram.org/tdlib
Boost Software License 1.0
6.97k stars 1.43k forks source link

tdweb does the job again when wasm was built #755

Open isopen opened 4 years ago

isopen commented 4 years ago

Here it loads for a long time: https://github.com/tdlib/td/blob/master/example/web/tdweb/src/wasm-utils.js#L125 It seems that this is 100% processor load.

@levlam It looks like the assembly is not cached and starts over.

isopen commented 4 years ago

@levlam Maybe?

export async function instantiateAny(version, url, importObject) {
  console.log("instantiate");
  try {
    <save to wasm-cache<url, result>> << return await instantiateCachedURL(version, url, importObject); << <WebAssembly.instantiateStreaming>
  } catch (e) {
    console.log("instantiateCachedURL failed", e);
  }
  try {
    <save to wasm-cache<url, result>> << return await instantiateCachedURL(version, url, importObject); << <WebAssembly.instantiate>
  } catch (e) {
    console.log("instantiateSteaming failed", e);
  }
  throw new Error("can't instantiate wasm");
}

https://github.com/tdlib/td/pull/757

isopen commented 4 years ago

@arseny30 Function name looks like a duck. https://github.com/tdlib/td/blob/master/example/web/tdweb/src/wasm-utils.js#L6

@arseny30 It looks like a duck too. https://github.com/tdlib/td/blob/master/example/web/tdweb/src/wasm-utils.js#L10

@arseny30 There is a whole migration of ducks. https://github.com/tdlib/td/blob/master/example/web/tdweb/src/wasm-utils.js#L101 https://github.com/tdlib/td/blob/master/example/web/tdweb/src/wasm-utils.js#L117

@arseny30 This duck is generally asynchronous. https://github.com/tdlib/td/blob/master/example/web/tdweb/src/wasm-utils.js#L69