[swift-users] Alternative to UnicodeScalar

Rien Rien at Balancingrock.nl
Sun Apr 9 01:57:24 CDT 2017


With the Array operations: append or insert

var tmp: [CChar] = [0, 0]
for i in 1 ... 100 {
    tmp.insert(0, at: 0)
}

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 09 Apr 2017, at 06:33, Proyb P <proyb6 at gmail.com> wrote:
> 
> 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
> 
> 



More information about the swift-users mailing list