The document discusses and benchmarks various string search algorithms, including Quick Search, strstr, and a custom implementation using SSE4.2 instructions. It finds that for short substrings, strstr in GCC utilizing SSE4.2 performs best, while for longer substrings, a modified Quick Search algorithm is faster. The author's own implementation using pcmpestri outperforms all other algorithms, being up to 5 times faster than other optimized implementations. It also discusses differences in performance between Xeon and Sandy Bridge CPUs.
The document discusses and benchmarks various string search algorithms, including Quick Search, strstr, and a custom implementation using SSE4.2 instructions. It finds that for short substrings, strstr in GCC utilizing SSE4.2 performs best, while for longer substrings, a modified Quick Search algorithm is faster. The author's own implementation using pcmpestri outperforms all other algorithms, being up to 5 times faster than other optimized implementations. It also discusses differences in performance between Xeon and Sandy Bridge CPUs.
The document discusses the growing use of emojis in business communication. Emojis have evolved from ancient pictograms and smileys to today's standardized emojis that can convey a wider range of emotions. There are now over 800 emojis that have become a common language for the billions of people using major tech platforms. The document argues that emojis help streamline conversations by clarifying intent and building understanding when used in workplace communication, with studies finding three-quarters of people now use emojis in professional settings.
This document discusses a rare error that occurs when a request is received by a Play application on Heroku after the application instance has shut down but before the underlying Netty server is stopped. It explains that this can happen during the dyno cycling process on Heroku when requests are still possible for a few seconds after shutdown before the instance is replaced. The document considers fixes to the Play framework to stop Netty on shutdown or changes on the Heroku side to avoid routing requests during cycling. It also proposes a workaround of scheduling restarts at less busy times to reduce potential errors.
15. 7bit * 7bitの範囲に定義された文字集合
◦ JIS X 208から漏れた文字を補完する目的なのでJIS X 208との重複はない
◦ 定義されている文字は約6000文字
EUC-JP,またはUnicodeで使用可能
◦ ISO-2022-JP-1(2)というのもあるらしいが本当に実装があるのかは謎
◦ UnicodeのコードポイントはBMP(非サロゲートペア)の範囲
◦ EUC(3byte文字)を正しく扱えない処理系はまだありそうなのでUnicode
以外では使わない方が無難
FF FF
80 80
00 00 80 FF
16. JIS X 208を拡張する形で再定義された文字集合
◦ JIS X 208のすべての文字を含む
◦ MS932との整合性が考慮されている(外字領域がないなど完全で
はない)
◦ JIS X 212との重複はある
エンコーディングスキームも同時に定義
◦ Shift_JIS, EUC, ISO-2022のそれぞれでのエンコーディングス
キームも規定されたが多分実装されていない
◦ Unicodeでは使用可能だが一部の文字はサロゲートペアとなる
FF FF
80 80
2面を追加
してさらに
文字を追加
00 00 80 FF
JIS X 208の空き領域に文字を追加
20. 世界中の文字をすべて一つのコード体系の中に押
し込めようという壮大な計画
◦ JISは日本人が日本語のためだけに作成したコード体系な
ので成り立ちが全く異なる
当初は2byteの範囲(256*256=65536文字)に全
ての文字を収めようとしていた
◦ あっさり破綻してサロゲートペアという仕組みを導入
JISの文字集合としては以下を収録
◦ JIS X 201
◦ JIS X 208
◦ JIS X 212
◦ JIS X 213
21. 1991/10 Ver 1.0
1996/7 Ver 2.0 サロゲートペア導入
2002/3 Ver 3.2 JIS X 213対応
2010/10 Ver 6.0 絵文字追加
2012年9月現在のバージョンは6.1
あとは文字が増えるだけ