並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 278件

新着順 人気順

asyncの検索結果1 - 40 件 / 278件

  • JavaScriptの非同期処理Promise、AsyncとAwaitの仕組みをGIFアニメで解説

    JavaScriptの非同期処理Promise、AsyncとAwaitの仕組みをGIFアニメで解説した記事を紹介します。 ⭐️🎀 JavaScript Visualized: Promises & Async/Await by Lydia Hallie 下記は各ポイントを意訳したものです。 ※当ブログでの翻訳記事は、元サイト様にライセンスを得て翻訳しています。 はじめに コールバック地獄 Promiseの構文 イベントループ: Microtasksと(Macro)tasks AsyncとAwait はじめに JavaScriptのコードが期待通りに実行されないことに悩まされたことはないですか? おそらく、関数が不規則に実行されたり、予測できないタイミングで実行されたり、実行が遅れたりしたことがあるかもしれません。そして、ES6で導入された新機能Promiseが原因かもしれません! 何年も

      JavaScriptの非同期処理Promise、AsyncとAwaitの仕組みをGIFアニメで解説
    • 4歳娘「パパ、Promiseやasync/awaitって何?」〜Promise編〜 - Qiita

      スペシャルサンクス @sega_yuu @frodo821 とある休日 娘(4歳)「ねえパパ」 ワイ「なんや、娘ちゃん?」 娘「非同期って何?」 ワイ「ひ、非道鬼!?」 娘「そうそう、非同期処理とかいうやつ」 ワイ「非道鬼を処理やて・・・!?」 非道鬼「ヴォ〜〜〜!!!」 娘「!?」 娘「・・・現れたわね、非道鬼」 娘「処理してあげる」 ワイ「娘ちゃん、まだ4歳なのに、もう厨二病か・・・?」 よめ太郎「おい」 よめ太郎「お前まさか、非同期も知らんのか・・・?」 ワイ「いやいや、まさかまさか」 ワイ「流石に知っとるわ」 ワイ「それはそれは・・・極悪非道な・・・鬼のことや・・・」 よめ太郎「お前が非道鬼に喰われてしまえ」 非同期処理とは よめ太郎「ええか、娘ちゃん」 よめ太郎「まず、同期って言葉は」 よめ太郎「タイミングが合うって意味や」 娘「じゃあ、非同期っていうのはタイミングが合わないって

        4歳娘「パパ、Promiseやasync/awaitって何?」〜Promise編〜 - Qiita
      • 【JavaScript】本日未明、[ async - await ]さんが死体で発見され... - Qiita

        「な、なんじゃこりゃあああぁあっtっt!!!!」 ・・・ ・・・ ・・・ 非同期処理を"ちゃんと"理解して使いたい 『非同期処理なんとなくの理解で書いている...』 『動いてるし、ヨシ!』 令和プログラマー*1である私自身、なるべく気を付けようと思っていますが、ついついなんとなくで書いてしまいそうになります。 (*1: 令和になってからプログラミングを知った人。初心者のこと。) ちなみに冒頭のコードは、「並列でいける処理をつい直列でやってしまっている」 例です。 実際に手を動かしながら非同期処理の理解を深める 本記事は以下の構成で、順を追って非同期処理を学習し、明日から自信を持って非同期処理が書けるようになるためのハンズオンです。 JSの非同期処理について知る Promise について知る Async / Await を使えるようにする 冒頭のコードがリファクタリングできるようになる 実際

          【JavaScript】本日未明、[ async - await ]さんが死体で発見され... - Qiita
        • 【C#】C# の async/await は実際にどうやって動いているか。 - ねののお庭。

          はじめに 登壇版 Taskの本質 C# のイテレータ async/await Compiler Transform ExecutionContext builder.Start() の重要性 IAsyncStateMachine.MoveNext おわりに はじめに C#er は呼吸するように使っている async/await。 そんな async/await について、先日 Stephen Toub 氏 (.NET の中の人。中心人物の一人。) が How Async/Await Really Works in C# という非常に面白い記事を投稿していました。 この記事では Stephen 氏の記事をベースに、C# において async/await は実際どうやって動いてるの?というお話をしていきます。 以前に C#での非同期メソッドの分析。 という翻訳記事を書いたのですが、元になった記

            【C#】C# の async/await は実際にどうやって動いているか。 - ねののお庭。
          • async/await は Promise を置き換えない - Okapies' Archive

            まとめ async/await 構文は、Promise で書ける処理のうち特定のケースしか表現できない 特定のケースとは、ある非同期処理の前処理と後処理がそれぞれ 1 個ずつの場合のみである async/await 構文は初心者に非同期処理を導入する際に適しているが、非同期処理を逐次処理として書けるという幻想を与えるので、どこかで知識をアップデートする機会を設けるべきである この記事はなに? 少しバズったのでまとめておこうかと。 「async/await があれば Promise なんて難しいものは要らない!」とか言ってるウブな子に、複数の API に並列にリクエストを投げて一つ以上成功した時だけ先に進む、みたいな問題を与えて愛でてみたい。— Yuta Okamoto (@okapies) 2020年12月11日 async/await は Promise のネストを手続き的なコードに見え

              async/await は Promise を置き換えない - Okapies' Archive
            • JavaScriptの非同期処理をじっくり理解する (3) async/await

              対象読者と目的 非同期処理の実装方法は知っているが、仕組みを詳しく知らないのでベストプラクティスがわからないときがある 実行順序の保証がよくわからないので自信をもってデプロイできない変更がある より詳しい仕組みを理解することでより計画的な実装をできるようになりたい という動機で書かれた記事です。同様の課題を抱える人を対象読者として想定しています。 目次 実行モデルとタスクキュー Promise async/await AbortSignal, Event, Async Context WHATWG Streams / Node.js Streams (執筆中) 未定 用語に関する注意 前々回定義した以下の用語を今回も使います。 1 tick ... タスクキューが1周すること。 1 microtick ... マイクロタスクキューが1周すること。 これらの単位は非同期処理の間の相対的な優先

                JavaScriptの非同期処理をじっくり理解する (3) async/await
              • (C#) async/await を理解する - ネコのために鐘は鳴る

                この記事は Qiita C# Advent Calendar 2021 の5日目の記事です。 はじめに C# で async/await が登場してからずいぶんと時間がたち、モダンな C# においてはほぼ必須となりました。Unity でも UniTask などのライブラリもあり、簡単に非同期処理が書けます。この記事では C# での非同期処理の歴史にも触れつつ async/await の動作原理について書きます。 Unity C# の話を書いた方が需要が高そうなので Unity および UniTask を前提にした説明とコードが多く出てきますが、async/await は C# の言語機能であるため、動作原理自体は .NET でも同じです。非 Unity の文脈では適宜読み替えてください。 また、詳細を完璧に説明するよりもわかりやすさを重視したため、一部正確さを欠いた説明をしています。ご了承

                  (C#) async/await を理解する - ネコのために鐘は鳴る
                • async/awaitにおけるエラー処理を実行の順番から整理する - Qiita

                  はじめに promiseを使うとき、いつもpromiseメソッドチェーンで記載していますか? async/awaitを利用していますか? もちろん状況によって両方書くのが殆どだとは思うのですが、私はasync/awaitの方が同期的な書き方ゆえに読みやすいため、なるべくそちらで記載しています。しかしながら、エラーハンドリングが理解できていなかったため、エラーの所在を突き止めるのに苦労してしまいました。 そのため、これを機にasync/awaitにおけるエラーハンドリングについて備忘録的にまとめておきます。 この記事のまとめ; catchされるエラーはrejectのみか、throwされたエラーも含まれるか →両方catchできる async関数における処理の順序、awaitがある場合とない場合 →awaitがない場合には同期的に処理が実行され、catchできなくなる エラー処理を外側に伝播し

                    async/awaitにおけるエラー処理を実行の順番から整理する - Qiita
                  • JavaScript Promiseの本 v2リリース、ES2015+に対応、Async Functionの章を追加

                    JavaScript Promiseの本 v2リリース、ES2015+に対応、Async Functionの章を追加 JavaScriptのPromiseについて学ぶ書籍であるJavaScript Promiseの本 v2をリリースしました。 Promise本 1.0.0をリリースしたのは2014年6月ですが、そこから少しづつアップデートしていました。 JavaScript Promiseの本を書きました | Web Scratch ES6がリリースされたのでPromiseについて学びましょう | Web Scratch 今回のメジャーアップデートとなる2.0.0では、サンプルコードのコードベースをES2015前提のものへと変更しています。 1.x系からの主な変更点としては次のものがあります。 ES6をES2015に表記を変更 コードベースをES5からES2015+(ES2015以降ベース

                      JavaScript Promiseの本 v2リリース、ES2015+に対応、Async Functionの章を追加
                    • decoding="async" について詳しく調べてみる

                      この記事は2023年7月19日時点の Chrome の最新版 115.0.5790.98 を使って検証しました。今後 Chrome の実装によって挙動が変わる可能性はございます。 はじめに 画像表示のパフォーマンス改善において、「decoding="async" をつけましょう」というのをよく見かけますが、おそらくほとんどの人がその実際の挙動を理解していない、あるいは誤った認識をしていると思います。今回詳しく調べる前の僕も含めて。 loading と decoding の違い 画像のパフォーマンス改善で decoding="async" のほかに、もう一つよく言及されるのが loading="lazy" です。decoding 属性について詳しく見る前に、まずは loading 属性との違いについて理解したほうがいいと思います。 loading とは、ブラウザがどのように画像を読み込むかを

                        decoding="async" について詳しく調べてみる
                      • V8エンジンによる内部変換コードでasync/awaitの挙動を理解する

                        はじめに JavaScript の「非同期処理」ってやっぱりかなり難しくないですか? 自分も色々試行錯誤しましたが、結局「完全に理解した🤓」→「やっぱり何も分からん😭」っていうループの中で泥臭く理解を深めていくしかないようです。 さて、非同期処理の制御をある程度予測できるようになるには、非同期 API を提供する環境のことやイベントループ、マイクロタスクなどの仕組みについて理解する必要があります。 そして環境に埋め込まれた JavaScript Engine のことも理解する必要があります。 今回の記事では、JavaScript Engine の1つである V8 が内部で変換するコードから async/await の挙動を理解するための解説を試みたいと思います。V8 エンジンからアプローチすることで async/await の分かりづらい挙動を掌握して非同期処理を打倒します。 今回の記

                          V8エンジンによる内部変換コードでasync/awaitの挙動を理解する
                        • neue cc - async/awaitのキャンセル処理やタイムアウトを効率的に扱うためのパターン&プラクティス

                          async/awaitの鬼門の一つとして、適切なキャンセル処理が挙げられます。別に基本的にはそんな難しいことではなく、CancellationTokenSourceを作る、CanellationTokenを渡す、OperationCanceledExceptionをハンドリングする。というだけの話です。けれど、Tokenに手動でコールバックをRegisterしたときとか、渡す口が空いてないものに無理やりなんとかするときとか、タイムアウトに使った場合の始末とか、ちょっと気の利いた処理をしたいような場面もあり、そうした時にどうすれば良いのか悩むこともあります。 こういうのはパターンと対応さえ覚えてしまえばいい話でもあるので、今回はAlterNatsの実装時に直面したパターンから、「外部キャンセル・タイムアウト・大元のDispose」が複合された状況での処理の記述方法と、適切な例外処理、そして最

                          • JavaScriptの非同期処理をじっくり理解する (4) AbortSignal, Event, Async Context

                            対象読者と目的 非同期処理の実装方法は知っているが、仕組みを詳しく知らないのでベストプラクティスがわからないときがある 実行順序の保証がよくわからないので自信をもってデプロイできない変更がある より詳しい仕組みを理解することでより計画的な実装をできるようになりたい という動機で書かれた記事です。同様の課題を抱える人を対象読者として想定しています。 目次 実行モデルとタスクキュー Promise async/await AbortSignal, Event, Async Context WHATWG Streams / Node.js Streams (執筆中) 未定 中止処理 並行処理ではしばしば実行中の処理を中止したい場合があります。 古典的なキャンセル処理 Webブラウザ/Node.jsともに、 setTimeout の中止が可能です。 const timeout = setTimeo

                              JavaScriptの非同期処理をじっくり理解する (4) AbortSignal, Event, Async Context
                            • async/await 比較(C#, JavaScript, Python) - Qiita

                              using System.Windows.Threading; Dispatcher.CurrentDispatcher.InvokeAsync(async () => { // いろいろな処理... // メッセージループを終了させる Dispatcher.CurrentDispatcher.BeginInvokeShutdown(DispatcherPriority.Normal); }); Dispatcher.Run(); WPF とか WinForms とかでは、フレームワークがすでにメッセージループを回しているので、自分で Dispatcher.Run() する必要はない。 JavaScript 自分で書く必要なし。 Python asyncio.run(最初に実行するasync関数)

                                async/await 比較(C#, JavaScript, Python) - Qiita
                              • async/awaitのaの違い~async wait説への反論 - Qiita

                                はじめに ncaq氏の記事を読んで様々なことを学習できました。 asyncが「syncしない」なのにawaitが「waitする」なのは何故か。awaitがasync waitであるという説は正しいのか。async/awaitの語源について学習したことを記事にしました。 asyncとawaitのa-の違い asyncはsynchronize(同期)にa-(否定)が付いてasync(同期しない)となります。 awaitはwait(待つ)にa-(否定)が付いて「待たない」となりません。a-(方向)が付いてawait(待つ)となります。 a-(否定)とa-(方向)の違いです。 a-(否定)は「エイ」と発音する傾向 asynchronous エイスィンクロナス 非同期 Ajax エイジャックス(Asynchronous JavaScript And XML) asymmetry エイスィメトゥリィ

                                  async/awaitのaの違い~async wait説への反論 - Qiita
                                • Rustのasync/awaitをスムーズに使うためのテクニック - Qiita

                                  RustのFutureとasync/awaitは、「時間のかかる処理」をするときに、「処理が終わるまでOSスレッドをブロックする(同期Rust)」のではなく、「当該処理を中断して、そのOSスレッドを別のタスクの処理に使う(非同期Rust)」ことで、スレッド数よりも多くの処理を同時に行う仕組みです。 同期Rustと非同期Rustには以下のようなアナロジーが成立します。 同期Rust 非同期Rust

                                    Rustのasync/awaitをスムーズに使うためのテクニック - Qiita
                                  • Rustのasync/awaitとスケジューラの話 / rust-async-await

                                    その Swift コード、
こう書き換えてみないか / Polishing your Swift code with me!

                                      Rustのasync/awaitとスケジューラの話 / rust-async-await
                                    • Display Locking によるレンダリングの最適化と Async DOM | blog.jxck.io

                                      Intro React や lit-html などにより、 DOM 操作の抽象化に加えて最適化が提供されることが一般的となった。 見方を変えれば、本来ブラウザがやるような最適化を、ライブラリが肩代わりしていると捉えることもできる。 これは、現在の標準 API には、規模が大きく処理が複雑なアプリケーションを開発する際に、足りてないものがあると考えることが可能だ。 課題の 1 つとして「DOM 操作が同期処理である」という点に着目し、 Async DOM という文脈でいくつかの提案が行われた。 今回は、その提案の 1 つであり Chrome で実装が進んでいる Display Locking について現状を解説する。 現状の DOM 操作の課題 まず、以下のような処理を考える。 body.appendChild($div) この処理が JS の途中で出現すれば、その瞬間 Window にある

                                        Display Locking によるレンダリングの最適化と Async DOM | blog.jxck.io
                                      • PHPで書いて覚える非同期処理 / php-async-programming

                                        これを読んでも、非同期処理はわかりませんが、暗いトンネルの先に光が見えます。

                                          PHPで書いて覚える非同期処理 / php-async-programming
                                        • ⭐️🎀 JavaScript Visualized: Promises & Async/Await

                                          Ever had to deal with JS code that just... didn't run the way you expected it to? Maybe it seemed like functions got executed at random, unpredictable times, or the execution got delayed. There's a chance you were dealing with a cool new feature that ES6 introduced: Promises! My curiosity from many years ago has paid off and my sleepless nights have once again given me the time to make some animat

                                            ⭐️🎀 JavaScript Visualized: Promises & Async/Await
                                          • Rustのasync/awaitの特徴4つ - Qiita

                                            async/awaitの最小限の機能が、 Rust 1.38.0 リリースを目標に準備されています。Rust1.36.0のリリースが2019-07-04で、Rustは6週間ごとにリリースされるので、順調にいけば 2019-09-26 頃にリリースされると思われます。もちろんnightlyではすでに試せます。 さてこのasync/awaitですが、他の言語のasync/awaitと基本コンセプトは近いものの、いくつか異なる点があります。個人的には以下のことを把握しておくとよいと思いました。 後置await構文 戻り値型 (内部戻り値型・実装ごとに異なる型) 駆動 (awaitまたはspawnしないと進まない) キャンセル (awaitポイントは中止ポイント) 本稿は現象の説明にとどめ、そうなっている理由には基本的に言及しませんが、どれもきちんと理由があってそうなっています。その点はご承知おき

                                              Rustのasync/awaitの特徴4つ - Qiita
                                            • Why choose async/await over threads?

                                              A common refrain is that threads can do everything that async/await can, but simpler. So why would anyone choose async/await? This is a common question that I’ve seen a lot in the Rust community. Frankly, I completely understand where it’s coming from. Rust is a low-level language that doesn’t hide the complexity of coroutines from you. This is in opposition to languages like Go, where async happe

                                                Why choose async/await over threads?
                                              • <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

                                                一つ自分で自覚している差別感情がある。 「字が汚い女は低脳で下劣」 というもの。 字の巧拙と能力、品性には相関などないと頭では分かっているのに、汚い字で何かを書いている女性を見ると、近寄ってはいけない、と心の中の警報が鳴り出すのだ。#国際女性デー— 蟻巣 (@first_flush) March 8, 2022 <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

                                                  <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
                                                • 第2章 ブラウザ操作自動化の基本 ~非同期処理を扱うasync/await関数、自動化の鍵を握るPuppeteerコンポーネント | gihyo.jp

                                                  [速習] Puppeteer ~ヘッドレスChromeでテスト&スクレイピング 第2章ブラウザ操作自動化の基本 ~非同期処理を扱うasync/await関数、自動化の鍵を握るPuppeteerコンポーネント 第2章では、実際にヘッドレスChromeを自動化するうえで必要となる、最新のJavaScriptの構文やPuppeteerのAPIについて解説します。 進化し続けるJavaScript PuppeteerのAPIを解説する前に、第1章の冒頭で掲載したサンプルコードを見返してみましょう。もしかすると、中にはまったく見慣れない構文が見つかったかもしれません。 const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch(); const page = await b

                                                    第2章 ブラウザ操作自動化の基本 ~非同期処理を扱うasync/await関数、自動化の鍵を握るPuppeteerコンポーネント | gihyo.jp
                                                  • ラーメンで理解するasync/await - Qiita

                                                    JavaScript 2 Advent Calendar 2019 の19日目の記事です。 (19/12/23 10:41追記) Promise.allについて最後に追記しました。 対象 async/awaitがなんだかはある程度知ってる人 async/awaitをなんとなくで使ってる人 そもそもasync/awaitって? async/awaitは、Promiseによる非同期処理をより簡潔に効率よく記述できる手法。 普通にPromiseを使うとネストが深くて辛くなるのを救ってくれる。 「async/await Promise」で検索すれば比較についてはたくさん出るので今回は書かない。 便利だから全部async/awaitにしちゃおう! って思うんですけど、実は罠があって。 ちゃんと気をつけないと非効率な感じになっちゃうよっていうのが今回のお話。 ただ、コードを並べて説明してもよくわからな

                                                      ラーメンで理解するasync/await - Qiita
                                                    • useEffect の概要と async function を使う際の注意点 - 30歳からのプログラミング

                                                      使用している React のバージョンは16.8.4。 レンダー後の処理を指定するための仕組み React Hooks の一つであるuseEffectは、レンダー後に実行したい処理を React に伝えるための仕組み。 useEffect(fn)と記述すると、DOMの更新が終わったあとにfnを実行する。 useEffectはレンダー後に必ず実行される。最初にレンダーした際もそうだし、propsやstateに変更があってレンダーし直した際もそう。そこに区別はない。 以下の例では、このコンポーネントが表示された際にeffect!というログが流れる。 そしてボタンを押下した際にも、その都度effect!というログが流れる。 import React, {useState, useEffect} from 'react'; const App = () => { const [state, set

                                                        useEffect の概要と async function を使う際の注意点 - 30歳からのプログラミング
                                                      • Async Python is not faster

                                                        50th and 99th percentile response times are in milliseconds, throughput is in requests per second. The table is ordered by P99, which I think is perhaps the most important real world statistic. Note that: The best performers are sync frameworks but Flask has lower throughput than others The worst performers are all async frameworks Async frameworks have far worse latency variation Uvloop-based opt

                                                        • Async Rust Is A Bad Language

                                                          But to get at whatever the hell I mean by that, we need to talk about why async Rust exists in the first place. Let’s talk about: Modern Concurrency: They’re Green, They’re Mean, & They Ate My Machine Suppose we want our code to go fast. We have two big problems to solve: We want to use the whole computer. Code runs on CPUs, and in 2023, even my phone has eight of the damn things. If I want to use

                                                            Async Rust Is A Bad Language
                                                          • プロダクションのRustコードを async / await に移行した話

                                                            κeenです。日本時間の 11/8 日に Rust 1.39.0 が リリースされ、Rustでもいよいよ async / await が利用できるようになりました。 async / await は面倒な Future の記述をすっきり書けるようにするシンタックスシュガーであると共に、 Future をまたいだ値のライフタイムもよしなに扱ってくれるので視認性以上のメリットがあります。 可能な限り使った方が良いでしょう。 Ideinのプロダクションコードもすぐさま async / await に移行しました。 IdeinのActcastのプロジェクトにはいくつかRustのコードベースがありますが、そのうちのAPIサーバの部分を async / await に移行しました。元々非同期なWAFを使っていたこともあり、ほとんどのコードで Future を使っています。規模としてはRustだけで23パ

                                                              プロダクションのRustコードを async / await に移行した話
                                                            • UniTask - Unityでasync/awaitを最高のパフォーマンスで実現するライブラリ

                                                              Cy#の河合です。今回、『UniTask』という新しいUnity用の非同期処理ライブラリを公開しました。 [GitHub – Cysharp/UniTask] 新規公開、ではありますが、実は新しいわけではなく、元々UniRxの機能として公開していたものを、分離したものとなります。併せてUniRxも更新していて、お互いに依存が一切ない独立したものになっています。 概要に関しては、以前に公開した以下のスライドで詳しく述べていますが、改めてまとめてみます。 async/awaitまでのC#/Unityの非同期処理 一般に、非同期処理はコールバックで完了後のメソッドを呼び出す形で実装できます。Unityも例外ではなく多用されていますが、 複雑な処理でネストが多重になる その際、内側の例外は外側には伝搬されない 処理順序がコードから見えなくなる といったような、いわゆるコールバック地獄に陥ります。代

                                                                UniTask - Unityでasync/awaitを最高のパフォーマンスで実現するライブラリ
                                                              • 【初心者向け】JavaScriptの非同期処理を理解する callback、Promiseそしてasync/awaitへ - Qiita

                                                                【初心者向け】JavaScriptの非同期処理を理解する callback、Promiseそしてasync/awaitへJavaScriptNode.js初心者向け 非同期処理は最近のフロントエンド開発において、もはや必須ともいえるようになってきました。 WebAPIに対して問い合わせる際や、ファイルを読み込む処理などJavaScriptではいたるところで非同期処理を実装する機会があります。非同期処理にすることでパフォーマンスを向上するようにNode.jsが設計されていることもあるのですが、同期的な処理を得意とする言語ばかり書いてきた人からするとどうしてもJavaScriptの非同期処理は受け入れづらいところがあるようです。 今回はJavaScriptの非同期処理として実装される3パターンを理解してみましょう。 コールバックによる実装とその地獄 コールバック地獄を解決するPromiseによ

                                                                  【初心者向け】JavaScriptの非同期処理を理解する callback、Promiseそしてasync/awaitへ - Qiita
                                                                • neue cc - C#のasync/await再考, タイムアウト処理のベストプラクティス, UniTask v2.2.0

                                                                  お題を3つ並べましたが、記事は逆順で書いていきます!というわけで、UniTask v2.2.0を出しました。改めてUniTask v2とはUnityのためのゼロアロケーションasync/awaitと非同期LINQを実現するライブラリで、とv2リリース時の解説記事を貼っつけましたが、ちょいちょい細かい改善を続けてまして、今回v2.2.0になります。 PlayerLoopへのループ挿入のカスタマイズ対応 現状のUnityはPlayerLoop上で動いていて、Unity 2020.1のリストをここに置いておきましたが、デフォルトでは120個ぐらいのループがエンジンから駆動されています。UpdateループだけでもScriptRunBehaviourUpdate, ScriptRunDelayedDynamicFrameRate, ScriptRunDelayedTasks, DirectorUpd

                                                                  • UniTask v2 - Unityのためのゼロアロケーションasync/awaitと非同期LINQ

                                                                    Cy#の河合です。去年、UniTask – Unityでasync/awaitを最高のパフォーマンスで実現するライブラリという形で紹介させていただきましたが、今回全てのコードを書き換えた新バージョンをリリースしました。 GitHub – Cysharp/UniTask UniTask v2では、コードの徹底的な書き換えにより、ほぼ全てがゼロアロケーション化しました(技術的詳細は後ほど述べます)。これによりパフォーマンスの大幅な向上を果たしているほか、新たに非同期シーケンスと、それに対応する非同期LINQが組み込まれました。その他、DOTweenやAddressableなどの外部アセットに対するawait標準対応も組み込まれ、より利便性が高まっています。 v2の前に、まず、async/await はC# 5.0から搭載されている機能で、従来コールバックの連鎖やコルーチンで処理していた非同期コ

                                                                      UniTask v2 - Unityのためのゼロアロケーションasync/awaitと非同期LINQ
                                                                    • decoding="async"とloading="lazy"の違い| PerfData

                                                                      画像の読込処理の違い ページ作成日 2019年12月19日 ページ更新日 2021年3月2日 著者: 竹洞 陽一郎 Webページにおいて、画像は重要な役割を果たしており、高解像度化と利用される枚数は増えていく傾向にあります。 その一方で、画像は、従来どおりの実装をしていると、HTMLのパース処理を遅延させる要因となります。 画像をいかに遅延要因としないようにするかの処理として、decoding="async"とloading="lazy"の違いを解説します。 decoding属性は、画像のデコード処理に関しての指示をユーザエージェントに明示する属性です。 decoding="async"と指定することで、画像のデコード処理を非同期にバッググラウンド処理し、他のコンテンツの表示処理が終わった時に更新処理で画像を一緒に出します。 記述の仕方としては、以下のようになります。 <img class

                                                                        decoding="async"とloading="lazy"の違い| PerfData
                                                                      • async/await,disposableを使って素直で読みやすいコードを書く | Unity Learning Materials

                                                                        async/await、聞いたことはあるけどなんだか難しそう。と思って使ってなかったりしませんか? これに対する自分の答えは、「難しい使い方で使うと難しい。」 逆に言えば、簡単な使いみちで使う分にはめっちゃ簡単なんですよ。 なので早速今から簡単な使い方を紹介していきます。 どこで使えるか ズバリ、「状態の制御」。 ゲームを作る上では必須ですが、状態を扱うサンプルコードって意外と少ないんですよね。 状態というのは例えば、「タイトル画面」「インゲーム画面」「リザルト画面」みたいな画面だとか、 RPGなら「マップを歩いている」「村人と会話している」など。 後は「ロード中」なんかも状態と言えますね。 このスライドにおける素直で読みやすいコードとは 色んな思想があるとは思いますが、このスライドにおいて自分が考えている素直で読みやすいコードとは、 「同じ抽象レベルの状態の制御が同じ場所で行われている」

                                                                          async/await,disposableを使って素直で読みやすいコードを書く | Unity Learning Materials
                                                                        • 坂本龍一 追悼連載vol.1:そのラディカルな晩年性と『async』 | CINRA

                                                                          3月28日に71歳で逝去した音楽家、坂本龍一。CINRAではその膨大な音楽作品に向き合うべく、「追悼・坂本龍一:わたしたちが聴いた音楽とその時代」(記事一覧はこちら)と題した連載を始動させる。第1回の書き手は『STUDIO VOICE』の元編集長・松村正人。『async』(2017年)をとりあげて「坂本龍一の晩年性」について寄稿してもらった。 昨年の暮れあたりだったか、ふとしたはずみで友人と大江健三郎の話になり、だれもが『万延元年のフットボール』(1967年)で事足れりとするけれども後期大江こそいまいちど読みなおすべきではないかとなり、たしかに私自身敬して遠ざけてきた感なきにしもあらずであったと反省し、1982年の『「雨の木(レインツリー)」を聴く女たち』あたりから読みなおし、そういえばデヴィッド・シルヴィアンらJapanの後身にRain Tree Crowなるバンドがあって、1991年の

                                                                            坂本龍一 追悼連載vol.1:そのラディカルな晩年性と『async』 | CINRA
                                                                          • async/awaitは今後もベストフレンドであり続けるか - hadashiA

                                                                            えーあーー みなさん聞こえますでしょうか。この記事はC# アドベントカレンダー17日めのために書かれました。 いくつかみかけた、async/await と java loom/goroutine的なものを比較する議論に興味があり、少し追ってみた感想です。実装まで深く調べられてません。 TL;DR Green Thread Experiment Results #2398 .NET の runtimelabにて、async/awaitの代替としてのグリーンスレッドを検証した結果が公開されていたが、今後も async/await でいくという結論になっている。 JVM (Java) は対象的に、コードの書き方をなにも変えなくてもランタイムが自動的にI/Oを非同期にしてくれる夢のVirtual Thread を導入した。 Rust界隈では「Why async/await ? why? why?

                                                                              async/awaitは今後もベストフレンドであり続けるか - hadashiA
                                                                            • 【C#】async/awaitのキャンセル処理まとめ - Qiita

                                                                              はじめに C#におけるasync/awaitを使う上で、絶対に意識しないといけないものは「キャンセル処理」です。 正しく処理をキャンセルしないとメモリリークを起こしたり、デッドロックやデータ不整合を引き起こす可能性があります。 今回はこの「async/awaitにおけるキャンセル処理」について話します。 対象 C#におけるasync/await全般 Task/ValueTask/UniTaskすべてに共通します Unity含む C#のasyc/awaitについてイマイチ自信が持ててない人 先に「結論」 asyncメソッドはCancellationTokenを引数に取るべき await対象が引数にCancellationTokenを要求する場合は省略せずに渡すべき OperationCanceledExceptionの取り扱いを意識するべき 解説 そもそも「キャンセル」とは何を指すのか そも

                                                                                【C#】async/awaitのキャンセル処理まとめ - Qiita
                                                                              • Async-await on stable Rust! | Rust Blog

                                                                                On this coming Thursday, November 7, async-await syntax hits stable Rust, as part of the 1.39.0 release. This work has been a long time in development -- the key ideas for zero-cost futures, for example, were first proposed by Aaron Turon and Alex Crichton in 2016! -- and we are very proud of the end result. We believe that Async I/O is going to be an increasingly important part of Rust's story. W

                                                                                  Async-await on stable Rust! | Rust Blog
                                                                                • Learning Async Rust With Entirely Too Many Web Servers

                                                                                  I've found that one of the best ways to understand a new concept is to start from the very beginning. Start from a place where it doesn't exist yet and recreate it yourself, learning in the process not just how it works, but why it was designed the way it was. This isn't a practical guide to async, but hopefully some of the background knowledge it covers will help you think about asynchronous prob

                                                                                    Learning Async Rust With Entirely Too Many Web Servers