Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Create libcsv based ruby/csv compatible CSV lib...
Search
秒速284km
May 31, 2018
Programming
870
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Create libcsv based ruby/csv compatible CSV library
RubyKaigi 2018 - Create libcsv based ruby/csv compatible CSV library
秒速284km
May 31, 2018
More Decks by 秒速284km
See All by 秒速284km
fukuoka_ruby_2019
284km
0
210
Rubyアソシエーション開発助成成果報告会
284km
0
2.5k
Charty - Visualize Real-world Data with Ruby
284km
1
2.8k
Charty - Visualizing your data in Ruby
284km
0
2.7k
.so にして色々な言語から便利にのっかろう
284km
0
110
Pragmatic Charty
284km
0
2.6k
Charty with Rails
284km
1
110
Charty (RubyGrant 2018)
284km
0
2.7k
Better CSV processing with Ruby 2.6
284km
0
120
Other Decks in Programming
See All in Programming
スマート反転とウェブアクセシビリティ
camiha
0
210
setup-vp GitLab対応の裏側
naokihaba
0
110
AWS Step Functions 大規模並列の壁を越える / jaws-sonic-2026-niigata-step-functions
kasacchiful
PRO
1
490
大喜利で理解するLLM as a Judge / Understanding LLM-as-a-Judge through Ogiri
rockname
0
140
App Storeの外へ──日本のiOSサイドローディング入門 for iOSDC Japan 2026
yuukiw00w
0
220
選挙速報を多くのユーザーへ 届ける Live Activities 設計
hamayokokuririn
0
150
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
180
SREの越境 / SRE Collaboration
y0hgi
2
240
AI が書く Go コードの品質を劇的に向上させる Linter: “declscope”
mpyw
0
370
MVNOの申込からeSIM開通までをiOSアプリでつなぐ- 本人確認・MNP・通信事業者基盤をまたぐ実装
satotakeshi
0
440
FreeBSDでZabbixを動かす
kenkino
0
310
Are APIs Still Relevant in the AI Era?
soyuka
0
270
Featured
See All Featured
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
280
Building AI with AI
inesmontani
PRO
1
1.2k
The Curse of the Amulet
leimatthew05
3
15k
Embracing the Ebb and Flow
colly
88
5.2k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
Context Engineering - Making Every Token Count
addyosmani
9
1.1k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
810
Code Reviewing Like a Champion
maltzj
528
40k
Optimizing for Happiness
mojombo
378
71k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
940
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
550
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Transcript
Create libcsv based ruby/csv compatible CSV library Asakusa.rb @284km
http://rubykaigi.org/2018/parties Talked in the title: “Super fast CSV parser” -
libcsv based - ruby/csv compatible
# libcsv based - fast - standard
# ruby/csv compatible - small && easy to read -
Backward compatibility
## Motivation - CSV is often used - Sometimes I
use a large CSV
## 284km/csv/tree/libcsv ``` # 100,000 lines Comparison: (libcsv) quoted: 81022184
allocated (libcsv) unquoted: 82071384 allocated - 1.01x more unquoted: 110535101 allocated - 1.36x more quoted: 133536546 allocated - 1.65x more ```
## libcsv - columns↑ performance↓ - rows↑ performance➘
## memory usage ``` # 5 columns, 10,000 lines Comparison:
(libcsv) quoted: 8090304 allocated (libcsv) unquoted: 9139504 allocated - 1.13x more unquoted: 11053221 allocated - 1.37x more quoted: 13354666 allocated - 1.65x more ```
## memory usage ``` # 5 columns, 100,000 lines Comparison:
(libcsv) quoted: 81022184 allocated (libcsv) unquoted: 82071384 allocated - 1.01x more unquoted: 110535101 allocated - 1.36x more quoted: 133536546 allocated - 1.65x more ```
## memory usage ``` # 10 columns, 10,000 lines Comparison:
unquoted: 13954361 allocated (libcsv) quoted: 14090304 allocated - 1.01x more (libcsv) unquoted: 15139504 allocated - 1.08x more quoted: 18555121 allocated - 1.33x more ```
## memory usage ``` # 10 columns, 1,000,000 lines Comparison:
unquoted: 1396650961 allocated (libcsv) quoted: 1411636904 allocated - 1.01x more (libcsv) unquoted: 1412686104 allocated - 1.01x more quoted: 1856651721 allocated - 1.33x more ```
# What/How to do after this talk ## Continue development
- libcsv multibyte support - column↑ performance→ - ffi gem replace to fiddle
RubyKaigi 2018 Thank you