Improve compilation time
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 25/100
- issue の種類
- リファクタリング
- 明瞭さ
- 説明が足りない
- 活発さ
- 停滞
- 技術スタック
- haskell
調査の方向性
まず vector のクリーンビルドを測定し、containers および unordered-containers と比較します。#457 の暗黙的な fusion、パッケージ分割、最適化フラグ、インlining、特殊化を含む、列挙された可能性を調査します。具体的なアプローチを確立してコンパイル時間を短縮できれば完了です。
索引モデルが issue の本文から書いたものです。
説明
I was wondering if it is possible to improve the compilation time for vector. On my machine, compiling it from scratch currently takes about 1.5 minutes (1 m 35 s), which I feel like is too long. For comparison, containers takes 45 seconds and unordered-containers takes 23 seconds. Yes, I know, cabal caches the build, but it's still annoying (you still have to compile it when switching to a new GHC version, contributing to vector, in CI, when non-Haskell people want to install a tool using vector,...).
Some ideas that might help to decrease compilation time:
- disable implicit fusion (#457)
- split
vectorinto several smaller packages (e.g.vector-core,vector-storable,vector-unboxed), so that users only have to depend on the parts they actually use (vectorwould stay the same, so people could just keep using it) - don't use
-O2(find out which flags significantly improve performance and only enable those) - reduce inlining (this is probably hard without also reducing performance)
- avoid redefinitions for specialization (this would be a breaking change, but idk how big the impact would be)
I'm curious how realistic you find my ideas and if you have other ideas to improve compilation time.
- 主要言語
- Haskell
- スター
- 403
- フォーク
- 146
- 平均マージ
- 1日 22時間
- マージ済み PR(30日)
- 3
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
haskell/vector のほかの issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 68/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 50/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 45/100
-
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
-
難易度 3/5 1〜2日 初心者へのやさしさ 55/100
似ている issue
-
docs: install-manifest download links use main instead of master (404)対応中かも @ChinmayaBisoi が 1 日前に担当しました。 オープン
難易度 2/5 1時間未満 初心者へのやさしさ 78/100
hasura/graphql-engine#10884 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
AccelerateHS/accelerate#583 · コメント 2 件 ·
-
component: hls-refactor-plugin status: needs triage type: bug
難易度 2/5 1〜3時間 初心者へのやさしさ 60/100
haskell/haskell-language-server#5111 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
alunduil/network-arbitrary#193 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
alunduil/siren-json.hs#245 ·
メンテナーはふだん 1 日以内に返信