This is a creation in Article, where the information may have evolved or changed.
original articles, reproduced please specify the Source: Server non-amateur research http://blog.csdn.net/erlib author Sunface
1. support for on-premises clients
The Native Client is re-emerging in Go1.3, which can now run on a 32-bit inter architecture processor (goarch=386) or in a 64-bit inter architecture. However, the 32-bit pointer is still used on 64-bit architectures and is not supported for ARM architectures. Note This is a local client (NACI), not a portable local client (PNACI). The specific use of Naci can be seen in another blogger blog post.
2. Stack
Go 1.3 Changed the way the stack was implemented in the old version of Goroutine, from the staging stack to the continuous stack implementation. When a goroutine requires more stack space and exceeds the current available stack size, the old stack is copied to a separate, larger block of memory. This conversion consumption is well apportioned, so you can avoid the previous "hot split" problem by avoiding a recurring calculation that causes the stack to be allocated and released at the time of the staging stack. Specific performance improvements visible in the design document(translated here later, please continue to follow Blogger's blog )
3. Stack size
The old go version of the stack space to increase the minimum value of 8K bytes, for the stack in Go 1.3, will be reduced to 4K bytes
4. Performance
The binary data of go has been improved in many aspects of this release, as there are some libraries changes in runtime and GC changes, and important changes have the following:
The default stack size changes from 8K to 4K bytes;
GC speed has been improved, now is a concurrent GC sweep algorithm, can be better parallel, the use of larger pages, so can shorten the GC interrupt timeof 50-70%;
The detection of resource competition is 40% faster;
The regular expression regexp is optimized for specific simple expressions and significantly improves performance because new engines are implemented in the new version. The selection of the fuze is the automatic completion of the system, the specific details for the user is hidden;
The runtime now contains a specific stack of information: record when a goroutine is blocked. This is very useful when there is a deadlock or performance problem.
5. Changes and optimizations of some libraries (temporarily not translated)