> On Feb 17, 2017, at 2:31 PM, Michael Gottesman via swift-dev > <swift-dev@swift.org> wrote: > >> >> On Feb 17, 2017, at 11:30 AM, David P Grove via swift-dev >> <swift-dev@swift.org <mailto:swift-dev@swift.org>> wrote: >> >> swift-dev-boun...@swift.org <mailto:swift-dev-boun...@swift.org> wrote on >> 02/16/2017 09:48:28 PM: >> > >> > I was curious about the overhead of ARC and started profiling some >> > benchmarks found in the Computer Language Benchmark Game (http:// >> > benchmarksgame.alioth.debian.org/u64q/measurements.php?lang=swift >> > <http://benchmarksgame.alioth.debian.org/u64q/measurements.php?lang=swift>). >> > >> > So far, it seems that ARC sequence optimization is surprisingly good >> > and most benchmarks don't have to perform ARC operations as often as >> > I expected. I have some questions regarding this finding. >> > >> > I compiled all benchmarks with "-O -wmo" flags and counted the >> > number of calls to ARC runtime (e.g., swift_rt_swift_retain) using Pin. >> > >> > 1. Reference counting is considered to have high overhead due to >> > frequent counting operations which also have to be atomic. At least >> > for the benchmarks I tested, it is not the case and there is almost >> > no overhead. Is it expected behavior? Or is it because the >> > benchmarks are too simple (they are all single-file programs)? How >> > do you estimate the overhead of ARC would be? >> > >> >> hmm, I wonder if your method of profiling is really finding all the ARC >> operations. The Swift version of regex-dna is about 25x slower than the >> Java version (on Linux). I looked at some prof profiles about a month ago >> and at the time roughly 80% of all execution samples were attributed to >> swift_retain/swift_release operations coming from CoreFoundation's regex >> implementation. >> > Question. Where is this regex-dna benchmark, is it in the swift benchmark > suite?
Here is a Swift version: http://benchmarksgame.alioth.debian.org/u64q/program.php?test=regexdna&lang=swift&id=2 <http://benchmarksgame.alioth.debian.org/u64q/program.php?test=regexdna&lang=swift&id=2> And here is a Java version: http://benchmarksgame.alioth.debian.org/u64q/program.php?test=regexdna&lang=java&id=7 <http://benchmarksgame.alioth.debian.org/u64q/program.php?test=regexdna&lang=java&id=7> And, BTW, Swift version is not multi-threaded, but Java version is. >> >> --dave >> >> (See attached file: regex-dna.svg) >> >> <regex-dna.svg>_______________________________________________ >> swift-dev mailing list >> swift-dev@swift.org <mailto:swift-dev@swift.org> >> https://lists.swift.org/mailman/listinfo/swift-dev >> <https://lists.swift.org/mailman/listinfo/swift-dev> > > _______________________________________________ > swift-dev mailing list > swift-dev@swift.org <mailto:swift-dev@swift.org> > https://lists.swift.org/mailman/listinfo/swift-dev > <https://lists.swift.org/mailman/listinfo/swift-dev>
_______________________________________________ swift-dev mailing list swift-dev@swift.org https://lists.swift.org/mailman/listinfo/swift-dev