Skip to content
ℕ𝔸𝕊𝔸™ℕ𝕒𝕤𝕒𝕣𝕖™𝕊𝕡𝕒𝕔𝕖𝕏™ https://nasa.re/

Nasare™🚀

フレッシュ スペース & テクノロジー NEWS📢

  • About 𝒩𝒶𝓈𝒶𝓇𝑒™
  • SMART Tools
  • SMART AI
    • Kubeshark PCAP Export/Import
    • Coaching engineering managers to employ on organizational issues
    • Zelda: Hyperlink’s Awakening game engine documentation (2021)
    • Commercial Resupply Services-CRS
  • Show HN
    • WINd3x、iPod Bootrom エクスプロイトは 10 年遅かった
    • Just by Notでプログラミングするシステム オブジェクト指向プログラミングの活用
    • 主な BGP 増加をレジデンス Windows デスクトップに追加する
    • ガジェットの複雑さが増し、余分な IP の再利用が促進される
    • 新しい GitHub CLI 拡張インストゥルメント
    • Kubernetes を 7,500 ノードにスケーリング (2021 年)
    • Wander アプリ用の軽量なオンザフリット構成ライブラリ
    • Ask HN
      • Declare HN: I wrote a WebAssembly Interpreter and Toolkit in C
      • Describe HN: Kandria, an action RPG made in Frequent Voice, is now out
      • Demonstrate HN: ClickHouse-local – a runt instrument for serverless files analytics
      • Brand HN: Motion photographs Watchlist Chrome Extension
      • Existing HN: Connmap – Desktop widget that reveals your TCP company on an international diagram
      • Level to HN: An initiate source tool to generate Jet Engine compressors
      • Insist HN: Ov – characteristic smartly off terminal pager
      • Level to HN: Graphic-Walker – A special kind of originate-offer different to Tableau
      • Level to HN: A corpulent game of snake encoded in a url
      • Point out HN: Kweb: A a ways away interface to the earn browser’s DOM
      • Present HN: Nanelo DNS – Privacy-Kindly, European Nameservers
      • Reward HN: Vim on-line editor the exercise of WebAssembly, storing files the exercise of IndexedDB
      • Show HN: AREnets – TensorFlow-basically based mostly Relation Extraction equipment for work in Colab
      • Speak HN: What sub $200 product improved HN readers’ 2022
      • Uncover HN: Easy internet app for teenagers to management a single Philips Hue light
      • Advise HN: Daft Art – an album veil maker powered by AI and curated aesthetics
    • Show HN
      • Reward HN: Vim on-line editor the exercise of WebAssembly, storing files the exercise of IndexedDB
      • Android phones will at the moment obtain iPhone-love SOS satellite texting
      • Demonstrate HN: ClickHouse-local – a runt instrument for serverless files analytics
      • Show HN: AREnets – TensorFlow-basically based mostly Relation Extraction equipment for work in Colab
      • Present HN: Nanelo DNS – Privacy-Kindly, European Nameservers
      • Insist HN: Ov – characteristic smartly off terminal pager
      • Level to HN: An initiate source tool to generate Jet Engine compressors
      • Speak HN: What sub $200 product improved HN readers’ 2022
      • Advise HN: Daft Art – an album veil maker powered by AI and curated aesthetics
      • Uncover HN: Easy internet app for teenagers to management a single Philips Hue light
      • Level to HN: A corpulent game of snake encoded in a url
    • Brand HN: Motion photographs Watchlist Chrome Extension
    • Existing HN: Connmap – Desktop widget that reveals your TCP company on an international diagram
    • Point out HN: Kweb: A a ways away interface to the earn browser’s DOM
    • Declare HN: I wrote a WebAssembly Interpreter and Toolkit in C
    • Tag HN: Using Key-Value Retail outlets in Serverless Codehooks.io Applications
    • Declare HN: I wrote a WebAssembly Interpreter and Toolkit in C
    • Point out HN: Kweb: A a ways away interface to the earn browser’s DOM
    • Existing HN: Connmap – Desktop widget that reveals your TCP company on an international diagram
    • Brand HN: Motion photographs Watchlist Chrome Extension
    • Level to HN: A corpulent game of snake encoded in a url
    • Uncover HN: Easy internet app for teenagers to management a single Philips Hue light
    • Advise HN: Daft Art – an album veil maker powered by AI and curated aesthetics
    • Speak HN: What sub $200 product improved HN readers’ 2022
    • Level to HN: An initiate source tool to generate Jet Engine compressors
    • Level to HN: Graphic-Walker – A special kind of originate-offer different to Tableau
    • Insist HN: Ov – characteristic smartly off terminal pager
    • Present HN: Nanelo DNS – Privacy-Kindly, European Nameservers
    • Show HN: AREnets – TensorFlow-basically based mostly Relation Extraction equipment for work in Colab
    • Demonstrate HN: ClickHouse-local – a runt instrument for serverless files analytics
    • Reward HN: Vim on-line editor the exercise of WebAssembly, storing files the exercise of IndexedDB
  • A Computer virus and a Dilemma
    • OCIS – OwnCloud Countless Scale
    • A Princeton student built an app which is ready to detect if ChatGPT wrote an essay
    • GitHub Is Sued, and We Would possibly perhaps Learn Something About Creative Commons Licensing
    • Adobe’s Command material analysis can be using photos/videos to narrate AI w/o consent
    • Ultralearning a.k.a. how I learned to code
    • Automatic1111 is assist on GitHub after taking away Embedding Links
    • Where Your Sides Came From
    • What Is a Pig Butchering Rip-off?
    • Submit-processing is ruining iPhone photos
    • Clos Topologies and Centralized Retain a watch on in Google’s Datacenter Community
    • Miller Engineering DS-1 House Planetarium
    • Gimel Studio: Non-harmful, 2D image editor
  • Technology
    • Miller Engineering DS-1 House Planetarium
    • Apple Doctors: to construct it as a file it is advisable to electronic mail it to your self
    • The Air India passenger who urinated on a girl has been fired by Wells Fargo
    • The Filesystem Hierarchy Usual Comes to Guix Containers
    • Sooner than it sued Google for copying from Java, Oracle changed into as soon as copying IBM’s SQL (2020)
    • The i3-gaps mission has been merged with i3
    • Making an Alphorn from Scratch
    • Apple: Braille Individual Guides
    • MotherDuck Is a Original Thought
    • The class of CGI and simple make
    • Like a mercurial tour of DragonFly BSD 6.4?
    • computer science
    • AI
    • Artificial intelligence
    • Technology
    • Ai
    • Apple
    • digital
  • TOP HN
    • anti-Mastodon
    • TOP HN
      • Show HN
      • Ask HN
      • coding
      • ガジェットの複雑さが増し、余分な IP の再利用が促進される
      • 新しい GitHub CLI 拡張インストゥルメント
      • Kubernetes を 7,500 ノードにスケーリング (2021 年)
      • Just by Notでプログラミングするシステム オブジェクト指向プログラミングの活用
      • Describe HN: Kandria, an action RPG made in Frequent Voice, is now out
      • WINd3x、iPod Bootrom エクスプロイトは 10 年遅かった
      • Wander アプリ用の軽量なオンザフリット構成ライブラリ
      • Artificial intelligence
      • 主な BGP 増加をレジデンス Windows デスクトップに追加する
      • Technology
      • Level to HN: Graphic-Walker – A special kind of originate-offer different to Tableau
      • Declare HN: I wrote a WebAssembly Interpreter and Toolkit in C
      • Point out HN: Kweb: A a ways away interface to the earn browser’s DOM
      • Existing HN: Connmap – Desktop widget that reveals your TCP company on an international diagram
      • Advise HN: Daft Art – an album veil maker powered by AI and curated aesthetics
      • Brand HN: Motion photographs Watchlist Chrome Extension
      • Declare HN: I wrote a WebAssembly Interpreter and Toolkit in C
      • Demonstrate HN: ClickHouse-local – a runt instrument for serverless files analytics
      • Describe HN: Kandria, an action RPG made in Frequent Voice, is now out
      • Existing HN: Connmap – Desktop widget that reveals your TCP company on an international diagram
      • Insist HN: Ov – characteristic smartly off terminal pager
      • Just by Notでプログラミングするシステム オブジェクト指向プログラミングの活用
      • Kubernetes を 7,500 ノードにスケーリング (2021 年)
      • Level to HN: A corpulent game of snake encoded in a url
      • Level to HN: An initiate source tool to generate Jet Engine compressors
      • Level to HN: Graphic-Walker – A special kind of originate-offer different to Tableau
      • Point out HN: Kweb: A a ways away interface to the earn browser’s DOM
      • Present HN: Nanelo DNS – Privacy-Kindly, European Nameservers
      • Reward HN: Vim on-line editor the exercise of WebAssembly, storing files the exercise of IndexedDB
      • Show HN: AREnets – TensorFlow-basically based mostly Relation Extraction equipment for work in Colab
      • Speak HN: What sub $200 product improved HN readers’ 2022
      • Uncover HN: Easy internet app for teenagers to management a single Philips Hue light
      • Wander アプリ用の軽量なオンザフリット構成ライブラリ
      • WINd3x、iPod Bootrom エクスプロイトは 10 年遅かった
      • ガジェットの複雑さが増し、余分な IP の再利用が促進される
      • 主な BGP 増加をレジデンス Windows デスクトップに追加する
      • 新しい GitHub CLI 拡張インストゥルメント
      • ロンドンで*ダウン*を継続的に見つめる: Pavement Oddities
      • 報酬 HN: C の 30 行でスピンロック
      • FAA の NOTAM とは何ですか? 航空専門家が機械の仕組みを説明
      • ナノGPT
      • 1 ビット LCD のグレースケール (2022)
      • The Muse (YC W12) は FP&A のシニア ディレクターを採用しています
      • Zen (YC S21) はグロース エンジニアを採用しています
      • Tall Inquire of (YC W21) が B2B 回顧録の幹部を採用
      • Actiondesk (YC S19) は、プロダクト ドレスメーカーを採用しています (4-6 か月の契約)
      • Oven (YC S19) は、Bun を作成するために C/C++ または Zig エンジニアを採用しています。
      • WInd3x, the iPod Bootrom exploit 10 years too unhurried
      • Sign HN: FASTA recordsdata を操作するための FUSE モジュール
      • HN を指します: Socketify.py: PyPy3 および Python3 用の Http/Https および WebSocket サーバー
      • Wage Development Continues to Gradual in the UK and Euro House
      • Stage Supervisor for the unimpressed: 1 Getting started
      • First public free up of Pushup: a brand unique compiler for making net apps in Trip
      • Fixing Cart-Pole Swingup with a Hierarchical Controller
      • Flight Testing the Touchdown Radar for Mars Science Laboratory 2011-06-21T17:36:36Z
      • Flightcontrol (YC W22) is hiring first Developer Recommend
      • Flying boats and other tech for cleaner shipping
      • Four Finalist Touchdown Location Candidates for Mars Science Laboratory 2008-11-19T16:21:01Z
      • France’s prized nuclear sector stalled in Europe’s hour of want
      • French startup unveils new residential thermo-acoustic warmth pump
      • FTC Cracks Down on Firms That Impose Contaminated Noncompete Restrictions
      • FTX’s Aged Prime Lawyer Aided US Authorities in Bankman-Fried Case
      • FY18 NASA lėšų šnypštimas 2017-05-22T00:00:00Z
      • G-3PO: A protocol droid for Ghidra, or GPT-3 for reverse-engineering
      • Gail.com FAQ
      • Gemini-Titan (GT)-6 – Gemini 6 of 7 – 지역 사진 – 외부 지역 1965-12-15T00:00:00Z
      • Geoffrey Hinton Publishes Original Deep Learning Algorithm
      • Germany warns: AI fingers flee already underway (2021)
      • Gimel Studio: Non-harmful, 2D image editor
      • GitHub Availability File
      • GitHub Is Sued, and We Would possibly perhaps Learn Something About Creative Commons Licensing
      • Google needs RISC-V to be a “tier-1” Android architecture
      • Google researcher, lengthy out of math, cracks devilish dispute about gadgets
      • Google start sourced CDC File Transfer from the ashes of Stadia
      • GRC-2003-C-02097 2004-05-01T00:00:00Z
      • GRC-2013-C-05246 2009-11-26T00:00:00Z
      • Hello world!
      • Highlights of Science Launching on SpaceX CRS-15 2018-06-24T00:00:00Z
      • Hilf Al-Fudul
      • HiOperator (YC S16) Is Hiring VP of Engineering
      • HN を指します: Socketify.py: PyPy3 および Python3 用の Http/Https および WebSocket サーバー
      • How kind I blueprint a pair of buttocks?
      • How will the haj switch as international temperatures upward thrust?
      • Human gene linked to bigger brains turned into as soon as born from apparently pointless DNA
      • Hundreds of scientists publish a paper every 5 days
      • In Favor of Friction and Flexibility
      • Indicate HN: Klotho – Change into straightforward code into cloud native code
      • Indoor farming isn’t exact for the smartly off
      • Iranian assault drone came across to have parts from more than a dozen US companies
      • Israeli researcher experiences leak of 235M Twitter-linked e-mail addresses
      • Jam Stations in Low Earth Orbit
      • Jazz Is Freedom
      • JPL-20171102-TECHf-0001-ドローントリップ 人間vs機械 2017-11-17T00:00:00Z
      • JPL에서 NASA의 MSI 콘도미니엄 액셀러레이터 2022-08-25T00:00:00Z
      • JPSO extinct facial recognition abilities to arrest a man. The tech modified into once defective
      • jsc2017e136097 – 12 月 4 日,俄罗斯联邦地区公司 (Roscosmos) 的远征 54-55 号机组人员 Anton Shkaplerov 在俄罗斯 Principal person City 的加加林宇航员训练中心上向整洁的祝福者挥手致意,当时他登上了前往附近的 Chkalovsky Ai 的公共汽车2017-12-04T00:00:00Z
      • Kemble’s Cascade of Stars
      • Kepler-90 マシン (アーティストの考え) 2017-12-14T00:00:00Z
      • Koichi Wakata SpaceX 코칭 2022-06-27T00:00:00Z
      • KSC and Proud to Be Heart-Wide Diversity Tournament 2019-08-20T00:00:00Z
      • KSC ir „Proud to Be Center“ įvairovės turnyras 2019-08-20T00:00:00Z
      • AI
      • Artificial intelligence
      • Auto-Generate
      • anti-Mastodon
      • Awesome
      • BioSentinel
      • CATEGORIES
      • DC
      • Dione
      • Diversity
      • drone racing
      • drones
      • Dulles
      • education
      • Event
      • filmstock
      • Goddard
      • AI
      • Ask HN
      • autonomous
      • coding
      • computer science
      • Clusters
      • Artificial intelligence
        • Ai
        • Apple
        • Tesla
        • digital
        • MESSENGER
        • Device
        • Charts
        • change
        • Shows
        • fraud
        • Former
        • fucking
        • purge
        • Works
        • entering
        • Databases
        • Review
        • Strangely
        • Instinct
        • staff
        • Salesforce
        • intern
        • Involuntary
        • promise
        • Twilio’s
        • nisv live
        • attack
        • Iranian
        • France’s
        • prized
        • infrastructure
        • Debian-based
        • nisv s02 ep03
        • siduction
        • Awesome
        • Calculate
        • Beautiful
        • Linux
        • Start
        • dollar
        • Messier
        • Daughters
        • ‘Breakthrough’
        • obesity
        • Al-Fudul
        • sixty years
        • PyTorch
        • discloses
        • Ancient
        • Stone
        • Popup
        • design
        • public
        • expanding
        • cloud
        • forest
        • startup
        • French
        • batteries
        • fleas
        • spotted
        • Petals
        • language
        • Habitual
        • checking
        • GitHub
        • Availability
        • layers
        • inconsistencies
        • Affair
        • Quasi-War
        • Sergey
        • Irate
        • bestseller
        • necessarily
        • Scientists
        • Titan
        • twitch
        • FGS/NIRISS – Fine Guidance Sensor/Near InfraRed Imager and Slitless Spectrograph
        • infrared
        • ISIM – Integrated Science Instrument Module
        • JHU – Johns Hopkins University
        • JWST – James Webb Space Telescope
        • JWST – James Webb Space Telescope
        • absolute zero
        • Big Bang
        • Peace
        • Studio
        • Making
        • project
        • -gaps
        • warns
        • Germany
        • Braille
        • MotherDuck
        • prototype
        • Challenges
        • Infinite
        • OwnCloud
        • Novel
        • Before
        • copying
        • California
        • getting
        • States
        • Criminal
        • Brother
        • Released
        • Method
        • owners
        • ‘richsession’
        • email
        • Elements
        • Where
        • passenger
        • Hierarchy
        • Filesystem
        • economic
        • Crew Dragon
        • Bridenstine
        • Scientific
        • Heaviosity
        • Patterns
        • Unexpected
        • minimalist
        • Ecode
        • Alpha
        • Wolfram
        • Tailwind
        • HiOperator
        • Klotho
        • TEAMS
        • ROBOTICS
        • Antelope
        • Sponsors
        • Ellen Gertsen
        • Transform
        • Flightcontrol
        • subscriptions
        • Internet
        • Theory-building
        • you’re
        • looking
        • Transfer
        • error’
        • Tails
        • migrate
        • Building
        • Bitmovin
        • Remote
        • PhotoRoom
        • Company
        • Taking
        • Ribbon
        • BibDesk
        • Android
        • profilers
        • phones
        • modern
        • Mastercard
        • private
        • We’ve
        • reportedly
        • Microsoft
        • Artsy
        • trades
        • skilled
        • Polygon
        • Flying
        • Princeton
        • Codemods
        • Coaching
        • UK’s
        • popping
        • sourced
        • Wikipedia
        • admin
        • Indoor
        • quick
        • Mysterious
        • Spotify
        • Fancy
        • Spotify
        • Weird
        • mail-order
        • Recipients
        • computer
        • optics
        • partnership
        • commercial
        • telemetry
        • Crisis
        • billionaire
        • Party
        • Onelab
        • Faster
        • general
        • Adobe’s
        • database
        • FinanceDatabase
        • Numerical
        • Freedom
        • concrete
        • Stacks
        • computer science
        • NASA
    • Show HN
    • Ask HN
    • Technology
    • computer science
    • coding
    • Clusters
    • AI
    • drones
    • autonomous
    • Auto-Generate
    • Ask HN
    • Show HN
    • The SMART Science™
    • google
  • CRYPTO
    • Blockchain
    • farming
    • Billionaires
    • FTX’s
    • FinanceDatabase: A database of 300.000 symbols (ETFs, Currencies, Crypto)
  • Artificial intelligence
  • Toggle search form
  • PC クマのストーンヘンジ、ゼロックスのアルトは、今月で 50 年以内に見えました
    PC クマのストーンヘンジ、ゼロックスのアルトは、今月で 50 年以内に見えました anti-Mastodon
  • Show camouflage HN: Node.js タスクの多目的クラウド移行計画
    Show camouflage HN: Node.js タスクの多目的クラウド移行計画 anti-Mastodon
  • HTML の基礎
    HTML の基礎 anti-Mastodon
  • Falsehoods プログラマーは時間を専門とする
    Falsehoods プログラマーは時間を専門とする Artificial intelligence
  • 大学の部屋の AI: 「大学生に ChatGPT の発音を要求します」
    大学の部屋の AI: 「大学生に ChatGPT の発音を要求します」 anti-Mastodon
  • HN の指摘: Excel 内に C# IDE、ランタイム、および AppStore を構築しました
    HN の指摘: Excel 内に C# IDE、ランタイム、および AppStore を構築しました anti-Mastodon
  • The Circumnavigators: アマチュア無線気球が巨大な世界を飛ぶ
    The Circumnavigators: アマチュア無線気球が巨大な世界を飛ぶ Amateur
  • Sdkman – ユーティリティ ファッション キットの機器スーパーバイザー
    Sdkman – ユーティリティ ファッション キットの機器スーパーバイザー anti-Mastodon
  • 화성 과학 연구소 적층 우주선 2011-11-10T18:00:09Z
    화성 과학 연구소 적층 우주선 2011-11-10T18:00:09Z Ask HN
  • NASA Town Hall 2019-12-03T00:00:00Z
    NASA Town Hall 2019-12-03T00:00:00Z NASA
  • Moonwalkers: Footwear that receive you mosey faster (pre-describe)
    Moonwalkers: Footwear that receive you mosey faster (pre-describe) Artificial intelligence
  • ユニカーネルと NanoVM
    ユニカーネルと NanoVM anti-Mastodon
  • Delphicon 2023 – Delphi の 28 周年を祝う
    Delphicon 2023 – Delphi の 28 周年を祝う anti-Mastodon
  • ChatGPT は 10 年以内にプログラマーを置き換えます
    ChatGPT は 10 年以内にプログラマーを置き換えます anti-Mastodon
  • MSI の (In) Real Boot: シェア 2
    MSI の (In) Real Boot: シェア 2 anti-Mastodon
不要な汎用構造体を削除して (Rust) librsvg のコード サイズを削減する

不要な汎用構造体を削除して (Rust) librsvg のコード サイズを削減する

Posted on March 5, 2023 By 📢 𝔾𝕠𝕠𝕘𝕝𝕖™
だれかが cargo-bloat を 1 日の形だと言いました。実際には、librsvg のジェネリック関数のコード サイズを測定するために検索し、機能強化があるかどうかを調べていました。コンパイルされたバイナリ内のすべての Rust クレートのコード サイズの概算と、さらに特定の person 関数用に生成されたコード量のより詳細なピークが含まれています。 が必要です

 作業対象。 実際に [lib]
 が得られた場合、これはもはや余暇を止めることにはならないでしょう。 そのため、librsvg の関数については、
rsvg-convert
 バイナリで cargo-bloat を実行しました。 
$

カーゴ 肥大化

 --開ける --木箱  
完了 

開ける [optimized] 目標(s) の 0.23s 検討中 目標/開ける/rsvg -ベンチ ファイル .文言資料

 寸法

クレート 10.0% 38.7% 1.0 MiB )librsvg 4.8

%  18.8 % 
 505.5KiB std  2.5%
  9.8 % 262.8KiB  

拍手 1.8% 7.1% 191.3KiB 正規表現 … 痕跡

 

渡されました … 25.8% 100.0% 2.6 ミブ .文言資料 ピース サイズ

  , ザ ファイル サイズ
 は

10.2 MiB リピート: 数字 その上

 

それは a 結果 の

 当て推量.

彼ら それは これ以上

 100%
  道徳の と 一度もない 意思 なれ。 
 

上記の出力は、

cargo bloat --open --crates
 に対するものです。  
--open オプションは、最適化されたバイナリを生成するためのものであり、
 --crates は cargo-bloat にクレートサイズの概要を事実に基づいて出力するように指示します。 例として、インライン化された関数も特定のクレートの呼び出し元に印象を与えるだけなので、数字はもはや完全に役立つ必要はありません。 軽度、問題のサイズを理解するのに十分なほど適切です. 
この場合、librsvg クレートのコードは約 1.0 MB です.
さて、凝縮する準備ができそうな一般的な関数を見つけてみましょう。 cargo-bloat が
--crates
 なしで賑やかである場合、特定の人物機能の寸法を出力します。 いくつかの実験の後、
cargo bloat --open -n 0 --filter librsvg
 で仕上げました。  
-n 0 オプションは cargo-bloat にすべての関数を表示するように指示し、N 個の最も魅力的なものを止めることはもはや事実ではありません。 --filter librsvg は、 のインスタンスとしてではなく、そのクレートで最も魅力的な関数を出力するように構成しますstd
 または 
regex
 . 
$ 

カーゴ

膨らみ - 開ける -ん

0 --filter 

librsvgファイル

  .テキストのコメント素材  

ディメンション クレート

  決定 0 .0%  0.0% 1.2KiB librsvg 

librsvg::ingredient::ElementInner::オリジナル 0.0% 0.0% 1 .2KiB librsvg

  librsvg::ingredient::ElementInner::オリジナル 0 .0%  0.0% 1.2KiB librsvg librsvg: :ingredient::ElementInner::オリジナル ...  出力 過ぎ去った ... 0.0%   0
 .0% 825B
  librsvg librsvg::ingredient::ElementInner:: set_style_attribute 0.0% 0. 0% 825B librsvg librsvg::成分::ElementInner::set_style_attribute 
0.0% 0.0%

825B librsvg librsvg::ingredient::ElementInner::set_style_attribute ... 出力 過ぎ去った ...

0

.0% 0.0% 358B librsvg librsvg::ingredient::ElementInner

 ::get_cond 0.0% 
0.0% 358B librsvg librsvg::ingredient::ElementInner ::get_cond 0.0% 0.0% 358B librsvg  librsvg::ingredient::ElementInner::get_cond ... 
 その他を山積み ... 

 出力をちょっとのぞいてみたところ、検索したい「重複した」関数があることに気付きました。 ここで起こっているのは、ElementInner
 はジェネリックを持つフォームであり、rustc はすべてのフォーム インスタンスに対してすべてのシステムのコピーを 1 つ生成しています。 したがって、ElementInner
のすべてのプロットのコピーが 1 つあります。
、
ElementInner[3, 4, 5, 9, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36 (peak), 50] 用の 1 つ
、完全な SVG 成分の種類のために他をヒープします。 
その周りのコードもかなり複雑です。 または、C から Rust への移植と予備的なリファクタリングの後、強力なクリーンアップが行われていないライブラリの共有にはもうありません。 どんな感じか見てみましょう 予備コード Librsvg は SVG ドキュメント内の XML を解析し、DOM ツリーに似たものを構築します。 ツリー自体が
rctree クレート

;

first_child
 または 
next_sibling( のような参照カウント ノードと関数があります。 。 ノードは、XML 物質、または XML タグ内のパーソナリティ コメント マテリアルを表すことができます。 ここでは、最も魅力的な物質でアピールしています。 

,10 L0,10 Z" fill=

「黒」/>

 
librsvg がそれをどのように表しているか見てみましょう.
rctree
 内の参照カウントされたすべてのノード内*)、librsvg は NodeData 列挙型を保持します。これにより、物質とパーソナリティ コメント マテリアルが区別される可能性があります:  
enum
  NodeData

{ 材料(材料)、

 文言資料

(文字), }

 では、
成分
  は、librsvg がサポートする svg
 名前空間内の完全な実体をおそらくおそらくおそらく区別する列挙型です:  
enum
  材料 

{ 丸(

フィールド<ElementInner<円 >>

),

 
 E  llipse(フィールド<ElementInner<楕円
>>

), ルート(分野<ElementInner <パス>>), // ... 約50件渡されました...}

 
これらの列挙型のすべてのバリアント内には、ElementInner があります。 、汎用形式 para の構造体メートル。 ElementInner は、DOM に似た構成要素のレコードを保持します:
 

struct ElementInner

<た: ElementTrait> { 要素名: QualName, 属性 :

属性,  
 // ... 渡されたフィールドの形式  
 element_impl
:
T

,

  *)} 
 

のために

    上記の成分、この構造体は次をキャッチします:

  • element_name
    : 
     を含む認証済みの名前 
    route
     svg
     名前空間。 
      attributes
      : 
      (name, label)
       の配列この場合 
      (d, "M0,0 L10,10 L0,10 Z")

    , (catch, "暗い")

    .

  • element_impl
    : 具体的な形式、
    Route
     
  • ルートの詳細 フォームは持っていますここではもはやひどく魅力的ではありません。 またはもはや事実ではありません ベジエ パスの内部表現 .

    構造体

  • ルート

     {  
     ルート: Rc<SvgPath>, } 
     

  • これらすべてのメモリ レイアウトの不可欠な側面を見てみましょう.

     初期メモリ配置  上記の列挙型と構造体がメモリによってどのように指定されているかを示します。 
    rctree:Nodeを糸で結ぶ NodeData
    . 
    をラップする) NodeData enum、および ElementInner<img alt= (テキスト注釈資料での説明)" src="http://viruta.org/images/generics-layout-earlier than.svg">
    NodeData に割り当てられたブロックは 1 つです。 enum であり、そのブロックは enum の判別式と埋め込まれた Ingredient
     enum を保持します。 反対に、 
    Ingredient
     列挙型には、
     のキャッチ判別式とレジデンシャルがあります。 )Field
     (つまり、ポインター)。これは、そのバリアントのすべてが実際に単一のフィールドを保持するためです。
     そのフィールドは、
    ElementInner の割り当てに対応します
    、それ自体に 
    Route が組み込まれています struct. 
    コンポーネントの名前やその属性のような XML イズムを保護するためのフィールドが ElementInner
    、もはや 
    Ingredient
     にはありません。 しかしもっと重要なのは、 ElementInner
     にはかなり多くのシステムがあります:  

    impl

    <た: ElementTrait> ElementInner<た>{ fn オリジナル(...)

      -> ElementInner<T>   {  // 総束の建物 
     }  fn  要素名

    (&自己 ) -> &QualName { ...

     }  fn get_attributes(
    &自己) -> & 属性 {  .. 
    .   }

    // システムの形式の束 }

     あるいは、実際にはこれらすべてのシステムの 1 つだけが 
    element_impl を消費します: T アリーナ! つまり、それらはすべて、すべての成分の種類に共通する製造中止の問題です。  
    element_impl
     アリーナを真に扱う正しいプロットは 
     です。 :diagram() プロット、そしてそれが行う最も魅力的なことは、具体的なフォームの 
     の実装に委譲することです::ダイアグラム()
    . NodeData enum with boxes, Element, and ElementData (description in text)一般的なフォームから挿入する  

    では、周りの問題を消しましょう。 これは私がしました:

    ターン
    enum Ingredient
     を 
    struct Ingredient
     に変換し、フィールドはすべての種類の原料に頻繁に使用されます.  
  • 所有する
    Ingredient.element_data  アリーナ... 
  • . .. これは ElementData の形式で、実際にはサポートされているすべての成分の種類を認識している列挙型です。
  • ここにはジェネリックを持つ種類はありません:
     
    構造体

    材料

    {  要素名: QualName
     ,  属性: 
    属性,

    // ... 渡されたフィールドの形式 要素データ: ElementData, }

    enum ElementData
    {

    丸(分野 <サークル>

    ),   楕円(フィールド<楕円>),  ルート(分野<パス>)、    // ... } 
    メモリレイアウトは次のようになります: NodeData enum with boxes, Element, and ElementData (description in text)

     割り当てが1つ増えますが、これでコードサイズが変わるかどうか見てみましょう.
     コードサイズ  
    私たちは、.textual remark material
     ピースの寸法を把握したいと考えています。 ELFファイル 
     
    # 成熟 $ objdump --piece-headers ./target/open/rsvg-bench Idx ディメンション VMA の決定LMAファイルOff ALGN 15 .textual ermer Material 0029FA17 000000000008A060 00000000000008A060 0008A060 24(2750999バイト) 

    元のコードは 186912 バイト小さくなっています。 もはや地球を揺るがすものではありませんが、cargo-bloat はもはやさまざまな記録に触れないため、単形化される動機を持たない重複した機能を示しません.

    成熟した:

    $

    貨物 肥大化 - 開ける --クレート

     ファイル

    .テキストの発言資料

     

    ディメンション クレート

    10.0% 

    38.7% 1

    .0MiB librsvg # トレースオーバー

    25.8% 100.0% 2.6MiB .テキストの発言素材 ピース サイズ、 の ファイル サイズ は 10

     .2MiB 
     

    オリジナル:

    $ 

    貨物

     肥大化 --open --クレート  

    ファイル .テキストのコメント素材

      

    寸法 クレート 9 .2% 37 .5% 939.5KiB librsvg 24.6% 100 .0% 2.4MiB .テキストの発言素材 ピース サイズ、 ファイル サイズ は 10 .0MiB

      キャッシュの局所性を使用するよりも、非励起のサポートが必要なコードははるかに少なくなりますが、魅力的な関数は、もはやホット ループである必要はありません。  librsvg のほぼすべての時間は、ラスター化のために Cairo で、合成のために Pixman で費やされます。 動的ディスパッチ 完全な具体的な種類 (Circle
    、
    ClipPath
    、およびヒープその他。) 
    ElementTrait
     を実装します。これには、
    ダイアグラム()
     プロット、それが上記のカテゴリで表示されなくなったと仮定しても。 これは、librsvg にとって最も役立つものです。  Fieldの活用
     というのは、そこではフォームの消去はやや厄介なものになるからです。 最後に、コードは、ElementData
     のバリアント:  

    Artificial intelligence, Ask HN, librsvg, Reducing, Show HN, Technology, TOP HN Tags:librsvg, Reducing, Show NH:

    Post navigation

    Previous Post: AMD Ryzen 9 7950X3D Evaluate: AMD が 3D V-Cache でゲーミング クラウンを取り戻す
    Next Post: 現在のHN: OpenBB Terminal – 資金調達はすべての人の評価

    Related Posts

    • Wasavi – 任意の Web ページ用の Vi エディター Show HN
    • Flight Simulator で 3D ビデオ スポーツ グラフィックスを開始
      Flight Simulator で 3D ビデオ スポーツ グラフィックスを開始 Artificial intelligence
    • Yahoo が再び注目を集める
      Yahoo が再び注目を集める Artificial intelligence
    • QOA、Pretty OK オーディオ レイアウト
      QOA、Pretty OK オーディオ レイアウト Artificial intelligence
    • Linux 用の EEVDF CPU スケジューラ
      Linux 用の EEVDF CPU スケジューラ Artificial intelligence
    • ChatGPT は、その理由を説明するよりも早く解決策を提示する努力をしています
      ChatGPT は、その理由を説明するよりも早く解決策を提示する努力をしています Artificial intelligence
    • NPM リポジトリに 15,000 のフィッシング プログラムが殺到
      NPM リポジトリに 15,000 のフィッシング プログラムが殺到 Artificial intelligence
    • DreamWorks が OpenMoonRay ソースコードをリリース
      DreamWorks が OpenMoonRay ソースコードをリリース Artificial intelligence
    • HN のデモンストレーション: Pandas データフレームを Tableau に似た UI に変換して視覚的な診断を行う
      HN のデモンストレーション: Pandas データフレームを Tableau に似た UI に変換して視覚的な診断を行う Artificial intelligence
    • LangChain: コンポーザビリティによって LLM を使用して AI アプリを構築する
      LangChain: コンポーザビリティによって LLM を使用して AI アプリを構築する Artificial intelligence

    Recent Posts

    • サムスンの AI 写真機能は、わずかな写真に不気味な歯を追加します
    • Hugging Face の CEO である Clem Delangue との暖炉チャット
    • Cerebras-GPT と LLaMA AI マネキンのパフォーマンス比較
    • ノーマル プルサ MK4
    • Effing-infected、Rust の仕上げライブラリ

    Recent Comments

    1. robga on Excessive Avenue コーヒーのカフェイン ステージはさまざまで、テストでは
    2. Loic on 行方不明の放射性タブレットは、必死の捜索の後、WA奥地で偶然見つけました
    3. minihat on メタは、標準的な VR e スポーツ Echo Area をシャットダウンします
    4. dafelst on フレーム ポインターの巻き戻しによる Move 実行トレーサーのオーバーヘッドの削減
    5. cloudking on GraphGPT: 構造化されていないテキストの肯定的な素材からのレコードデータ グラフの外挿
    • This image used to be taken by NASA’s EPIC digital camera onboard the NOAA DSCOVR spacecraft 2023-01-04 02:01:05
      This image used to be taken by NASA’s EPIC digital camera onboard the NOAA DSCOVR spacecraft 2023-01-04 02:01:05 image
    • PyPI の顧客に対する最近の攻撃のほとんどは、詐欺師がますます大きくなっていることが明らかになった
      PyPI の顧客に対する最近の攻撃のほとんどは、詐欺師がますます大きくなっていることが明らかになった anti-Mastodon
    • Dino 0.4 – メッセージの反応、返信、および GTK4
      Dino 0.4 – メッセージの反応、返信、および GTK4 Artificial intelligence
    • Amazonでスーパーバイザーをしていました。 上司が私に辞めるように勧めた
      Amazonでスーパーバイザーをしていました。 上司が私に辞めるように勧めた Amazon
    • Curiosity フロントハザード回避カメラ 2012-08-06 Ask HN
    • The Verge の現在のデスクトップ ツール: 技術、装飾、猫
      The Verge の現在のデスクトップ ツール: 技術、装飾、猫 anti-Mastodon
    • GPT-5: GPT-4 によって書かれた短い物語
      GPT-5: GPT-4 によって書かれた短い物語 anti-Mastodon
    • This image used to be taken by NASA’s EPIC digital camera onboard the NOAA DSCOVR spacecraft 2023-01-05 12:39:58
      This image used to be taken by NASA’s EPIC digital camera onboard the NOAA DSCOVR spacecraft 2023-01-05 12:39:58 image
    MAILANON
    2100 MAIL
    SEO
    METAVERSE
    BioLINK
    CRYPTO MINING
    CASINO
    DEFI-TRACKER
    StartApp Network
    RAVES-MONSTER-GAME
    RAVES EXCHANGE
    RAVES NFT
    KVANTA TV

    Copyright © 2023 Nasare™🚀.

    Powered by PressBook News Dark theme