Submit Search
Upload
Rustでソートを高速化した話(Shinjuku.rs)
•
Download as PPTX, PDF
•
0 likes
•
349 views
M
MasayukiUrakami1
Follow
Shinjuku.rs #11 での発表資料です
Read less
Read more
Technology
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 12
Download now
Recommended
1000万DL突破!BrainWarsのアーキテクチャ
1000万DL突破!BrainWarsのアーキテクチャ
Masakazu Matsushita
Brain Dots at dots. - Brain Dotsのアーキテクチャ -
Brain Dots at dots. - Brain Dotsのアーキテクチャ -
Masakazu Matsushita
BrainWarsのアーキテクチャ(OpsWorks & DynamoDB編)
BrainWarsのアーキテクチャ(OpsWorks & DynamoDB編)
Masakazu Matsushita
ソーシャルゲームにレコメンドエンジンを導入した話
ソーシャルゲームにレコメンドエンジンを導入した話
Tokoroten Nakayama
捗るリコメンドシステムの裏事情(ハッカドール)
捗るリコメンドシステムの裏事情(ハッカドール)
mosa siru
ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話
ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話
Tokoroten Nakayama
PostgreSQLでスケールアウト
PostgreSQLでスケールアウト
Masahiko Sawada
商用DBからPostgreSQLへ まず知っておいて欲しいまとめ
商用DBからPostgreSQLへ まず知っておいて欲しいまとめ
Kosuke Kida
Recommended
1000万DL突破!BrainWarsのアーキテクチャ
1000万DL突破!BrainWarsのアーキテクチャ
Masakazu Matsushita
Brain Dots at dots. - Brain Dotsのアーキテクチャ -
Brain Dots at dots. - Brain Dotsのアーキテクチャ -
Masakazu Matsushita
BrainWarsのアーキテクチャ(OpsWorks & DynamoDB編)
BrainWarsのアーキテクチャ(OpsWorks & DynamoDB編)
Masakazu Matsushita
ソーシャルゲームにレコメンドエンジンを導入した話
ソーシャルゲームにレコメンドエンジンを導入した話
Tokoroten Nakayama
捗るリコメンドシステムの裏事情(ハッカドール)
捗るリコメンドシステムの裏事情(ハッカドール)
mosa siru
ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話
ビッグデータとioDriveの夕べ:ドリコムのデータ分析環境のお話
Tokoroten Nakayama
PostgreSQLでスケールアウト
PostgreSQLでスケールアウト
Masahiko Sawada
商用DBからPostgreSQLへ まず知っておいて欲しいまとめ
商用DBからPostgreSQLへ まず知っておいて欲しいまとめ
Kosuke Kida
MongoDB3.2の紹介
MongoDB3.2の紹介
Tetsutaro Watanabe
20140818 オープン白熱塾 ksasakims
20140818 オープン白熱塾 ksasakims
Kuninobu SaSaki
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT⑧
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT⑧
Yahoo!デベロッパーネットワーク
Cloudera World Tokyo 2014 LTセッション「マイクロソフトとHadoop」
Cloudera World Tokyo 2014 LTセッション「マイクロソフトとHadoop」
Kuninobu SaSaki
SensorBeeのご紹介
SensorBeeのご紹介
Daisuke Tanaka
実務で役立つデータベースの活用法
実務で役立つデータベースの活用法
Soudai Sone
Ansibleで始めるpostgre sqlの冗長化
Ansibleで始めるpostgre sqlの冗長化
Soudai Sone
[OSC2016沖縄]商用DBからPostgreSQLへの移行入門
[OSC2016沖縄]商用DBからPostgreSQLへの移行入門
Kosuke Kida
Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話
Tokoroten Nakayama
Durable function storage provider
Durable function storage provider
Kazunori Hamamoto
ゼロから始めるBlob
ゼロから始めるBlob
Kazunori Hamamoto
DDDハンズオン
DDDハンズオン
Soudai Sone
PythonによるWebスクレイピング入門
PythonによるWebスクレイピング入門
Hironori Sekine
Oss x user_meeting_6_postgres
Oss x user_meeting_6_postgres
Kosuke Kida
Oratopostgres-hiroshima
Oratopostgres-hiroshima
Kosuke Kida
SensorBeeの紹介
SensorBeeの紹介
Shuzo Kashihara
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
Yahoo!デベロッパーネットワーク
Caffeのデータレイヤで夢が広がる話
Caffeのデータレイヤで夢が広がる話
Masaki Saito
pysqldf
pysqldf
airtoxin Ishii
Chainer on Azure 2 年の歴史
Chainer on Azure 2 年の歴史
Hirono Jumpei
OSC2013 HIROSHIMA ライトニングトーク すごい広島
OSC2013 HIROSHIMA ライトニングトーク すごい広島
Tomohiko Himura
RustでWebSocketな自社APIを使う
RustでWebSocketな自社APIを使う
Satoshi Yoshikawa
More Related Content
What's hot
MongoDB3.2の紹介
MongoDB3.2の紹介
Tetsutaro Watanabe
20140818 オープン白熱塾 ksasakims
20140818 オープン白熱塾 ksasakims
Kuninobu SaSaki
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT⑧
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT⑧
Yahoo!デベロッパーネットワーク
Cloudera World Tokyo 2014 LTセッション「マイクロソフトとHadoop」
Cloudera World Tokyo 2014 LTセッション「マイクロソフトとHadoop」
Kuninobu SaSaki
SensorBeeのご紹介
SensorBeeのご紹介
Daisuke Tanaka
実務で役立つデータベースの活用法
実務で役立つデータベースの活用法
Soudai Sone
Ansibleで始めるpostgre sqlの冗長化
Ansibleで始めるpostgre sqlの冗長化
Soudai Sone
[OSC2016沖縄]商用DBからPostgreSQLへの移行入門
[OSC2016沖縄]商用DBからPostgreSQLへの移行入門
Kosuke Kida
Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話
Tokoroten Nakayama
Durable function storage provider
Durable function storage provider
Kazunori Hamamoto
ゼロから始めるBlob
ゼロから始めるBlob
Kazunori Hamamoto
DDDハンズオン
DDDハンズオン
Soudai Sone
PythonによるWebスクレイピング入門
PythonによるWebスクレイピング入門
Hironori Sekine
Oss x user_meeting_6_postgres
Oss x user_meeting_6_postgres
Kosuke Kida
Oratopostgres-hiroshima
Oratopostgres-hiroshima
Kosuke Kida
SensorBeeの紹介
SensorBeeの紹介
Shuzo Kashihara
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
Yahoo!デベロッパーネットワーク
Caffeのデータレイヤで夢が広がる話
Caffeのデータレイヤで夢が広がる話
Masaki Saito
pysqldf
pysqldf
airtoxin Ishii
Chainer on Azure 2 年の歴史
Chainer on Azure 2 年の歴史
Hirono Jumpei
What's hot
(20)
MongoDB3.2の紹介
MongoDB3.2の紹介
20140818 オープン白熱塾 ksasakims
20140818 オープン白熱塾 ksasakims
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT⑧
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT⑧
Cloudera World Tokyo 2014 LTセッション「マイクロソフトとHadoop」
Cloudera World Tokyo 2014 LTセッション「マイクロソフトとHadoop」
SensorBeeのご紹介
SensorBeeのご紹介
実務で役立つデータベースの活用法
実務で役立つデータベースの活用法
Ansibleで始めるpostgre sqlの冗長化
Ansibleで始めるpostgre sqlの冗長化
[OSC2016沖縄]商用DBからPostgreSQLへの移行入門
[OSC2016沖縄]商用DBからPostgreSQLへの移行入門
Rubyの会社でPythonistaが3ヶ月生き延びた話
Rubyの会社でPythonistaが3ヶ月生き延びた話
Durable function storage provider
Durable function storage provider
ゼロから始めるBlob
ゼロから始めるBlob
DDDハンズオン
DDDハンズオン
PythonによるWebスクレイピング入門
PythonによるWebスクレイピング入門
Oss x user_meeting_6_postgres
Oss x user_meeting_6_postgres
Oratopostgres-hiroshima
Oratopostgres-hiroshima
SensorBeeの紹介
SensorBeeの紹介
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
ヤフー音声認識サービスでのディープラーニングとGPU利用事例
Caffeのデータレイヤで夢が広がる話
Caffeのデータレイヤで夢が広がる話
pysqldf
pysqldf
Chainer on Azure 2 年の歴史
Chainer on Azure 2 年の歴史
Similar to Rustでソートを高速化した話(Shinjuku.rs)
OSC2013 HIROSHIMA ライトニングトーク すごい広島
OSC2013 HIROSHIMA ライトニングトーク すごい広島
Tomohiko Himura
RustでWebSocketな自社APIを使う
RustでWebSocketな自社APIを使う
Satoshi Yoshikawa
皆さん!ふくてんが来ましたよ!!
皆さん!ふくてんが来ましたよ!!
ru pic
元運用担当者が,現役時代に本当に欲しかったもの. Osc2014 kansai@kyoto terraform introduction
元運用担当者が,現役時代に本当に欲しかったもの. Osc2014 kansai@kyoto terraform introduction
Masahito Zembutsu
Python による 「スクレイピング & 自然言語処理」入門
Python による 「スクレイピング & 自然言語処理」入門
Tatsuya Tojima
ISUCON夏期講習2015_2 実践編
ISUCON夏期講習2015_2 実践編
SATOSHI TAGOMORI
Rustで DDD を実践しながら API サーバーを実装・構築した(つもり)
Rustで DDD を実践しながら API サーバーを実装・構築した(つもり)
ShogoOkazaki
俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜
俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜
Koichi ITO
Remineを活かしたプロセス支援 - 失敗しないプロセス支援 -
Remineを活かしたプロセス支援 - 失敗しないプロセス支援 -
Makoto SAKAI
PreadNet
PreadNet
Junya Kuwada
SQL on Hadoop 比較検証 【2014月11日における検証レポート】
SQL on Hadoop 比較検証 【2014月11日における検証レポート】
NTT DATA OSS Professional Services
Rubyの会社でPythonistaが三ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話
Drecom Co., Ltd.
Effective SQLite For Android
Effective SQLite For Android
Shinobu Okano
20201107 四国クラウドお遍路 2020 LT
20201107 四国クラウドお遍路 2020 LT
Jun Yamanaka
160531 IoT LT #15 @ 日本IBM
160531 IoT LT #15 @ 日本IBM
Toshiki Tsuboi
リクルートライフスタイル分析基盤チーム2年目が世話するデータ連携bot達のお話
リクルートライフスタイル分析基盤チーム2年目が世話するデータ連携bot達のお話
Yuji Sakurai
名古屋CV_ROSによるロボットソフトウェア開発の準備
名古屋CV_ROSによるロボットソフトウェア開発の準備
ssuser6b6663
20190925_DBTS_PGStrom
20190925_DBTS_PGStrom
Kohei KaiGai
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
Katsuhiro Morishita
20160326 第10回 Rad Studio 勉強会@Osaka
20160326 第10回 Rad Studio 勉強会@Osaka
Ryo Ohki
Similar to Rustでソートを高速化した話(Shinjuku.rs)
(20)
OSC2013 HIROSHIMA ライトニングトーク すごい広島
OSC2013 HIROSHIMA ライトニングトーク すごい広島
RustでWebSocketな自社APIを使う
RustでWebSocketな自社APIを使う
皆さん!ふくてんが来ましたよ!!
皆さん!ふくてんが来ましたよ!!
元運用担当者が,現役時代に本当に欲しかったもの. Osc2014 kansai@kyoto terraform introduction
元運用担当者が,現役時代に本当に欲しかったもの. Osc2014 kansai@kyoto terraform introduction
Python による 「スクレイピング & 自然言語処理」入門
Python による 「スクレイピング & 自然言語処理」入門
ISUCON夏期講習2015_2 実践編
ISUCON夏期講習2015_2 実践編
Rustで DDD を実践しながら API サーバーを実装・構築した(つもり)
Rustで DDD を実践しながら API サーバーを実装・構築した(つもり)
俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜
俺も受託開発〜準委任契約によるふつうのソフトウェア開発〜
Remineを活かしたプロセス支援 - 失敗しないプロセス支援 -
Remineを活かしたプロセス支援 - 失敗しないプロセス支援 -
PreadNet
PreadNet
SQL on Hadoop 比較検証 【2014月11日における検証レポート】
SQL on Hadoop 比較検証 【2014月11日における検証レポート】
Rubyの会社でPythonistaが三ヶ月生き延びた話
Rubyの会社でPythonistaが三ヶ月生き延びた話
Effective SQLite For Android
Effective SQLite For Android
20201107 四国クラウドお遍路 2020 LT
20201107 四国クラウドお遍路 2020 LT
160531 IoT LT #15 @ 日本IBM
160531 IoT LT #15 @ 日本IBM
リクルートライフスタイル分析基盤チーム2年目が世話するデータ連携bot達のお話
リクルートライフスタイル分析基盤チーム2年目が世話するデータ連携bot達のお話
名古屋CV_ROSによるロボットソフトウェア開発の準備
名古屋CV_ROSによるロボットソフトウェア開発の準備
20190925_DBTS_PGStrom
20190925_DBTS_PGStrom
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
20160326 第10回 Rad Studio 勉強会@Osaka
20160326 第10回 Rad Studio 勉強会@Osaka
Recently uploaded
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
Recently uploaded
(8)
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
Rustでソートを高速化した話(Shinjuku.rs)
1.
Rustでソートを高速化した話 浦上 真之 2020/8/25 Shinjuku.rs
2.
Rustで(特定の条件下での)ソートを 高速化(するために選択アルゴリズムを実装) した(ら当然速くなった)話 浦上 真之 2020/8/25 Shinjuku.rs
3.
自己紹介 • フォルシア株式会社 • 今年入社 •
Webエンジニア • インメモリデータベース開発(Rust) • Rust歴 : 約1か月 • 趣味 : 競技プログラミング • ICPC(国際大学対抗プログラミングコンテスト)で 世界大会への出場が決定 →コロナ禍で大会が延期に 1 : 1 : 8 今日のLT内容
4.
今日のテーマ DBでよくあるクエリ SELECT * FROM
てーぶる WHERE じょうけん ORDER BY そーときー OFFSET ほげ LIMIT ふが を速くしたい!!!! 問題文っぽく簡略化 長さNの数列 A[0], A[1], ... , A[N-1] があります。 これを昇順に並べ替えたときの、offset番目からoffset + limit 番目までの 要素をなるべく速く求めてください。 N(テーブルの要素数): 大きい(今回は100万くらい) limit(取り出す要素数): 小さい(今回は100)
5.
一般的なソートアルゴリズムの例(クイックソート) 3 7 2
9 8 6 1 10 4 5 3 2 6 1 4 5 7 9 8 10 2 1 3 6 4 5 7 8 9 10 1 2 3 4 5 6 7 8 9 10 適当に要素を1つ選んで大小に分ける それぞれの区間ごとに繰り返す
6.
工夫(3~5番目が欲しい場合) 3 7 2
9 8 6 1 10 4 5 3 2 6 1 4 5 7 9 8 10 2 1 3 6 4 5 7 9 8 10 2 1 3 4 5 6 7 9 8 10 並び替える必要がない!
7.
実装例
8.
どれくらい速くなるの? • ベンチマークをとってみる • Criterion.rs
を使用 (https://github.com/bheisler/criterion.rs)
9.
いい感じのHTMLを出力してくれる
10.
他にも。。。 • 前回との差分を見る
11.
他にも。。。 ・複数の関数を比較、入力を変化させて実行 limit = 0,
offset = 100 固定で配列の大きさを 変化させた場合
12.
ご清聴ありがとうございました
Download now