[swift-users] Alternative to UnicodeScalar

Proyb P proyb6 at gmail.com
Sat Apr 8 23:33:24 CDT 2017


How do I append character A-Z by integer into CChar and benchmark timing
how fast it’s append compare to UInt8?


var tmp: [CChar] = [0,0]

for var i in 0...256 {

tmp[0] = 100

}

print(String(cString: &tmp))



On Sun, Apr 9, 2017 at 3:17 AM, Proyb P <proyb6 at gmail.com> wrote:

> Agree, in some case, I seem to find Cchar is really shine at 10x faster
> than Python from A to Z, 1000x faster than normal Swift? Not sure if there
> was flaw in the time measurement.
>
>
> On Sunday, 9 April 2017, Rien <Rien at balancingrock.nl> wrote:
>
>> Server-side is usually UTF-8 (not always), so often you don’t really need
>> strings.
>> As an aside, time measurements are difficult, especially when IO is
>> involved there may be thread switches or locks.
>>
>> I have written some parsers (UTF-8 based) and not yet encountered
>> performance problems. (though faster is always better)
>>
>> Regards,
>> Rien
>>
>> Site: http://balancingrock.nl
>> Blog: http://swiftrien.blogspot.com
>> Github: http://github.com/Balancingrock
>> Project: http://swiftfire.nl - A server for websites build in Swift
>>
>>
>>
>>
>>
>>
>> > On 08 Apr 2017, at 18:19, Proyb P via swift-users <
>> swift-users at swift.org> wrote:
>> >
>> > I have found this took about 0.001s to print 256 characters
>> > Compare to Python took 0.000016s to print 256 characters, see F8 code
>> and have modify to run only one call instead of 1000 iterations.
>> > https://gist.github.com/anonymous/18e372e8d0173e77b5c405920d4d3080
>> >
>> > As this is frequently use for server-side swift that will definitely
>> affected by expensive call, are there any alternative solution for
>> converting Int to character close to Python timing?
>> >
>> > import Foundation
>> > var display: String = ""
>> >
>> >     func printTimeElapsedWhenRunningCode(title: String, operation:
>> ()->()) {
>> >         let startTime = CFAbsoluteTimeGetCurrent()
>> >         operation()
>> >         let timeElapsed = CFAbsoluteTimeGetCurrent() - startTime
>> >         print("Time elapsed for \(title): \(timeElapsed) s")
>> >     }
>> >
>> >     printTimeElapsedWhenRunningCode(title: "s1()") {
>> > let startingValue = Int(("A" as UnicodeScalar).value) // 65
>> > for i in 0 ..< 256 {
>> >     print(Character(UnicodeScalar(i + startingValue)!))
>> > }
>> > }
>> > _______________________________________________
>> > swift-users mailing list
>> > swift-users at swift.org
>> > https://lists.swift.org/mailman/listinfo/swift-users
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-users/attachments/20170409/1e64633a/attachment.html>


More information about the swift-users mailing list