Event : Visual Studio Users Community Japan #1
Date : 2019/09/14
ソフトウェア/サービス開発において最も後回しにされるものの代表が「パフォーマンスの向上」です。C#/.NET の最大の武器は開発生産性ですが、C# 7.0 以降はパフォーマンス向上のための機能追加が多数行われています。いくつかのポイントを押さえることで実装時からより高速なコードを書くことができるようになります。
このドキュメントでは、そんなポイントとなる箇所をふんだんにお届けします。
Event : Visual Studio Users Community Japan #1
Date : 2019/09/14
ソフトウェア/サービス開発において最も後回しにされるものの代表が「パフォーマンスの向上」です。C#/.NET の最大の武器は開発生産性ですが、C# 7.0 以降はパフォーマンス向上のための機能追加が多数行われています。いくつかのポイントを押さえることで実装時からより高速なコードを書くことができるようになります。
このドキュメントでは、そんなポイントとなる箇所をふんだんにお届けします。
41. 41Ⓒ Classmethod, Inc.
SequenceType Generator.Element
Array<Int> Element = Int
Extension対象への制約
Bool
var anyTrue
SequenceTypeの
Generator.Elementが
Boolかチェック
x
#cmdevio
42. 42Ⓒ Classmethod, Inc.
SequenceType Generator.Element
Array<Int> Element = Int
Extension対象への制約
Bool
var anyTrue
SequenceTypeのGenerator.Elementが
Boolではないので
デフォルト実装を使えない
x
#cmdevio
65. グローバル関数の変更
• Swift 1.2 -> 2 でグローバル関数の多くがProtocol
のメソッドに移行した
65Ⓒ Classmethod, Inc.
https://developer.apple.com/library/prerelease/ios/
releasenotes/General/iOS90APIDiffs/modules/Swift.html
#cmdevio
66. グローバル関数の変更
• Swift 1.2 -> 2 でグローバル関数の多くがProtocol
のメソッドに移行した
66Ⓒ Classmethod, Inc.
https://developer.apple.com/library/prerelease/ios/
releasenotes/General/iOS90APIDiffs/modules/Swift.html
#cmdevio
67. グローバル関数の変更
• Swift 1.2 -> 2 でグローバル関数の多くがProtocol
のメソッドに移行した
Swift 1.2
Swift 2
67Ⓒ Classmethod, Inc.
contains([1, 2, 3, 4], 5)
[1, 2, 3, 4].contains(5)
#cmdevio
68. • Swift 1.2 -> 2 でグローバル関数の多くがProtocol
のメソッドに移行した
Swift 1.2
Swift 2
グローバル関数の変更
68Ⓒ Classmethod, Inc.
contains(filter([1, 2, 3, 4]) {
a in a % 2 == 0 }, 5)
[1, 2, 3, 4].filter {
a in a % 2 == 0
}.contains(5)
#cmdevio