Hacker News new | ask | show | jobs
by pkaler 3508 days ago
I compiled it down and did a quick profile. Looks like a lot of the time is spent on line 96, converting a Character to its ascii value.

https://dl.dropboxusercontent.com/u/13740348/Screen%20Shot%2...

2 comments

That's because Character is very, very different from ASCII in Swift (a character in Swift holds an extended grapheme cluster. See https://developer.apple.com/reference/swift/character). I also doubt the way they compute its ASCII value is optimal:

  extension Character {
    var asciiValue: UInt32? {
        return  String(self)
            .unicodeScalars
            .filter{$0.isASCII}
            .first?
            .value
    }
  }
Certainly if it is optimal, but probably also if it isn't, I would change the program to not do that conversion in inner loops.
This is awesome guys. Thanks.