TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Go 1.8 toolchain improvements

88 pointsby spaceyover 8 years ago

3 comments

svetly0over 8 years ago
MIPS32 support - kudos to Vladimir Stefanovic and Imagination Technologies for making this happen. Many people from the embedded world will also greatly appreciate support for soft-float MIPS32 hardware.
评论 #12995058 未加载
0xmohitover 8 years ago
There are scores of other optimizations [0] as well:<p><pre><code> Optimizations: bytes, strings: optimize for ASCII sets (CL 31593) bytes, strings: optimize multi-byte index operations on s390x (CL 32447) bytes,strings: use IndexByte more often in Index on AMD64 (CL 31690) bytes: Use the same algorithm as strings for Index (CL 22550) bytes: improve WriteRune performance (CL 28816) bytes: improve performance for bytes.Compare on ppc64x (CL 30949) bytes: make IndexRune faster (CL 28537) cmd&#x2F;asm, go&#x2F;build: invoke cmd&#x2F;asm only once per package (CL 27636) cmd&#x2F;compile, cmd&#x2F;link: more efficient typelink generation (CL 31772) cmd&#x2F;compile, cmd&#x2F;link: stop generating unused go.string.hdr symbols. (CL 31030) cmd&#x2F;compile,runtime: redo how map assignments work (CL 30815) cmd&#x2F;compile&#x2F;internal&#x2F;obj&#x2F;x86: eliminate some function prologues (CL 24814) cmd&#x2F;compile&#x2F;internal&#x2F;ssa: generate bswap on AMD64 (CL 32222) cmd&#x2F;compile: accept literals in samesafeexpr (CL 26666) cmd&#x2F;compile: add more non-returning runtime calls (CL 28965) cmd&#x2F;compile: add size hint to map literal allocations (CL 23558) cmd&#x2F;compile: be more aggressive in tighten pass for booleans (CL 28390) cmd&#x2F;compile: directly construct Fields instead of ODCLFIELD nodes (CL 31670) cmd&#x2F;compile: don&#x27;t reserve X15 for float sub&#x2F;div any more (CL 28272) cmd&#x2F;compile: don’t generate pointless gotos during inlining (CL 27461) cmd&#x2F;compile: fold negation into comparison operators (CL 28232) cmd&#x2F;compile: generate makeslice calls with int arguments (CL 27851) cmd&#x2F;compile: handle e == T comparison more efficiently (CL 26660) cmd&#x2F;compile: improve s390x SSA rules for logical ops (CL 31754) cmd&#x2F;compile: improve s390x rules for folding ADDconst into loads&#x2F;stores (CL 30616) cmd&#x2F;compile: improve string iteration performance (CL 27853) cmd&#x2F;compile: improve tighten pass (CL 28712) cmd&#x2F;compile: inline _, ok = i.(T) (CL 26658) cmd&#x2F;compile: inline atomics from runtime&#x2F;internal&#x2F;atomic on amd64 (CL 27641, CL 27813) cmd&#x2F;compile: inline convT2{I,E} when result doesn&#x27;t escape (CL 29373) cmd&#x2F;compile: inline x, ok := y.(T) where T is a scalar (CL 26659) cmd&#x2F;compile: intrinsify atomic operations on s390x (CL 31614) cmd&#x2F;compile: intrinsify math&#x2F;big.mulWW, divWW on AMD64 (CL 30542) cmd&#x2F;compile: intrinsify runtime&#x2F;internal&#x2F;atomic.Xaddint64 (CL 29274) cmd&#x2F;compile: intrinsify slicebytetostringtmp when not instrumenting (CL 29017) cmd&#x2F;compile: intrinsify sync&#x2F;atomic for amd64 (CL 28076) cmd&#x2F;compile: make [0]T and [1]T SSAable types (CL 32416) cmd&#x2F;compile: make link register allocatable in non-leaf functions (CL 30597) cmd&#x2F;compile: missing float indexed loads&#x2F;stores on amd64 (CL 28273) cmd&#x2F;compile: move stringtoslicebytetmp to the backend (CL 32158) cmd&#x2F;compile: only generate ·f symbols when necessary (CL 31031) cmd&#x2F;compile: optimize bool to int conversion (CL 22711) cmd&#x2F;compile: optimize integer &quot;in range&quot; expressions (CL 27652) cmd&#x2F;compile: remove Zero and NilCheck for newobject (CL 27930) cmd&#x2F;compile: remove duplicate nilchecks (CL 29952) cmd&#x2F;compile: remove some write barriers for stack writes (CL 30290) cmd&#x2F;compile: simplify div&#x2F;mod on ARM (CL 29390) cmd&#x2F;compile: statically initialize some interface values (CL 26668) cmd&#x2F;compile: unroll comparisons to short constant strings (CL 26758) cmd&#x2F;compile: use 2-result divide op (CL 25004) cmd&#x2F;compile: use masks instead of branches for slicing (CL 32022) cmd&#x2F;compile: when inlining ==, don’t take the address of the values (CL 22277) container&#x2F;heap: remove one unnecessary comparison in Fix (CL 24273) crypto&#x2F;elliptic: add s390x assembly implementation of NIST P-256 Curve (CL 31231) crypto&#x2F;sha256: improve performance for sha256.block on ppc64le (CL 32318) crypto&#x2F;sha512: improve performance for sha512.block on ppc64le (CL 32320) crypto&#x2F;{aes,cipher}: add optimized implementation of AES-GCM for s390x (CL 30361) encoding&#x2F;asn1: reduce allocations in Marshal (CL 27030) encoding&#x2F;csv: avoid allocations when reading records (CL 24723) encoding&#x2F;hex: change lookup table from string to array (CL 27254) encoding&#x2F;json: Use a lookup table for safe characters (CL 24466) hash&#x2F;crc32: improve the AMD64 implementation using SSE4.2 (CL 24471) hash&#x2F;crc32: improve the AMD64 implementation using SSE4.2 (CL 27931) hash&#x2F;crc32: improve the processing of the last bytes in the SSE4.2 code for AMD64 (CL 24470) image&#x2F;color: improve speed of RGBA methods (CL 31773) image&#x2F;draw: optimize drawFillOver as drawFillSrc for opaque fills (CL 28790) math&#x2F;big: 10%-20% faster float-&gt;decimal conversion (CL 31250, CL 31275) math&#x2F;big: avoid allocation in float.{Add, Sub} when there&#x27;s no aliasing (CL 23568) math&#x2F;big: make division faster (CL 30613) math&#x2F;big: use array instead of slice for deBruijn lookups (CL 26663) math&#x2F;big: uses SIMD for some math big functions on s390x (CL 32211) math: speed up Gamma(+Inf) (CL 31370) math: speed up bessel functions on AMD64 (CL 28086) math: use SIMD to accelerate some scalar math functions on s390x (CL 32352) reflect: avoid zeroing memory that will be overwritten (CL 28011) regexp: avoid alloc in QuoteMeta when not quoting (CL 31395) regexp: reduce mallocs in Regexp.Find* and Regexp.ReplaceAll* (CL 23030) runtime: cgo calls are about 100ns faster (CL 29656, CL 30080) runtime: defer is now 2X faster (CL 29656) runtime: implement getcallersp in Go (CL 29655) runtime: improve memmove for amd64 (CL 22515, CL 29590) runtime: increase malloc size classes (CL 24493) runtime: large objects no longer cause significant goroutine pauses (CL 23540) runtime: make append only clear uncopied memory (CL 30192) runtime: make assists perform root jobs (CL 32432) runtime: memclr perf improvements on ppc64x (CL 30373) runtime: minor string&#x2F;rune optimizations (CL 27460) runtime: optimize defer code (CL 29656) runtime: remove a load and shift from scanobject (CL 22712) runtime: remove defer from standard cgo call (CL 30080) runtime: speed up StartTrace with lots of blocked goroutines (CL 25573) runtime: speed up non-ASCII rune decoding (CL 28490) strconv: make FormatFloat slowpath a little faster (CL 30099) strings: add special cases for Join of 2 and 3 strings (CL 25005) strings: make IndexRune faster (CL 28546) strings: use AVX2 for Index if available (CL 22551) strings: use Index in Count (CL 28586) syscall: avoid convT2I allocs for common Windows error values (CL 28484, CL 28990) text&#x2F;template: improve lexer performance in finding left delimiters (CL 24863) unicode&#x2F;utf8: optimize ValidRune (CL 32122) unicode&#x2F;utf8: reduce bounds checks in EncodeRune (CL 28492) </code></pre> [0] <a href="https:&#x2F;&#x2F;github.com&#x2F;golang&#x2F;go&#x2F;blob&#x2F;master&#x2F;doc&#x2F;go1.8.txt" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;golang&#x2F;go&#x2F;blob&#x2F;master&#x2F;doc&#x2F;go1.8.txt</a>
grabcocqueover 8 years ago
So, the language has now spent getting on for 18 months significant slower than it used to be, and nobody seems to have a real issues with this?
评论 #12993994 未加载
评论 #12994038 未加载