from :http://www.oschina.net/news/51084/gcc-4-9-0

GCC 4.9.0 公布,此版本号是个主要版本号更新,包含了 GCC 4.8.x 系列和之前的 GCC 版本号都没有的新特性,新特性很之多。下载地址:http://gcc.gnu.org/mirrors.html

警告

  • 移除 mudflap 执行时检查器,mudflap 选项保留,但没有不论什么效果.

  • 对一些非常多老的系统和一些不维护的平台的支持在 4.9 版本号中声明为过世的,下一个版本号将永久删除,比如 Solaris 9

很多其它移植到  GCC 4.9 的信息请參考 移植指南

一般优化器改进

  • AddressSanitizer, a fast memory error detector, is now available on ARM.

  • UndefinedBehaviorSanitizer (ubsan), a fast undefined behavior detector,        has been added and can be enabled via -fsanitize=undefined.
    Various computations will be instrumented to detect undefined behavior at runtime.  UndefinedBehaviorSanitizer is currently available for the C and C++ languages.

  • Link-time optimization (LTO) improvements:Memory usage building Firefox with debug enabled was reduced from 15GB to    3.5GB; link time from 1700 seconds to 350 seconds.

    • Type merging was rewritten. The new implementation is significantly faster      and uses less memory.

    • Better partitioning algorithm resulting in less streaming during  link time.

    • Early removal of virtual methods reduces the size of object files and  improves link-time memory usage and compile time.

    • Function bodies are now loaded on-demand and released early improving  overall memory usage at link time.

    • C++ hidden keyed methods can now be optimized out.

    • When using a linker plugin, compiling with the -flto          option now generates slim objects files (.o)
      which only          contain intermediate language representation for LTO. Use          -ffat-lto-objects to create
      files which contain          additionally the object code.  To generate static libraries suitable          for LTO processing, use gcc-ar and
             gcc-ranlib; to list symbols from a slim object file use         gcc-nm.
      (Requires that ar,         ranlib and nm have
      been compiled with         plugin support.)

  • Inter-procedural optimization improvements:

    • New type inheritance analysis module improving devirtualization.  Devirtualization now takes into account anonymous name-spaces and the  C++11 final keyword.

    • New speculative devirtualization pass (controlled by  -fdevirtualize-speculatively.

    • Calls that were speculatively made direct are turned back to indirect  where direct call is not cheaper.

    • Local aliases are introduced for symbols that are known to be  semantically equivalent across shared libraries improving dynamic  linking times.

  • Feedback directed optimization improvements:

    • Profiling of programs using C++ inline functions is now more reliable.

    • New time profiling determines typical order in which functions are  executed.

    • A new function reordering pass (controlled by  -freorder-functions) significantly reduces  startup time of large applications.
       Until binutils support is  completed, it is effective only with link-time optimization.

    • Feedback driven indirect call removal and devirtualization now handle  cross-module calls when link-time optimization is enabled.

新语言和语音特性改进

  • Version 4.0 of the OpenMP specification is now supported for the C and C++ compilers. The new -fopenmp-simd option
    can be used to enable OpenMP's SIMD directives, while ignoring other OpenMP directives. The new -fsimd-cost-model= option
    permits to tune the vectorization cost model for loops annotated with OpenMP and Cilk Plus simd directives;-Wopenmp-simd warns
    when the current costmodel overrides simd directives set by the user.

  • The -Wdate-time option has been added for the C, C++ and Fortran compilers, which warns when the __DATE__,

    __TIME__
     or __TIMESTAMP__ macros are used. Those macros might prevent bit-wise-identical reproducible compilations.

Ada

  • GNAT switched to Ada 2012 instead of Ada 2005 by default.

C family

  • Support for colorizing diagnostics emitted by GCC has been added.    The-fdiagnostics-color=auto will
    enable it when    outputting to terminals,-fdiagnostics-color=always    unconditionally.  The GCC_COLORS environment
    variable    can be used to customize the colors or disable coloring.    If GCC_COLORS variable is present in the
    environment,    the default is -fdiagnostics-color=auto, otherwise    -fdiagnostics-color=never.

       Sample diagnostics output:

        $ g++ -fdiagnostics-color=always -S -Wall test.C    test.C: In function ‘int foo()’:    test.C:1:14: warning: no return statement in function returning non-void [-Wreturn-type]
         int foo () { }                  ^
        test.C:2:46: error: template instantiation depth exceeds maximum of 900 (use -ftemplate-depth= to increase the maximum) instantiating ‘struct X<100>’
         template <int N> struct X { static const int value = X<N-1>::value; }; template struct X<1000>;                                                  ^
        test.C:2:46:   recursively required from ‘const int X<999>::value’    test.C:2:46:   required from ‘const int X<1000>::value’    test.C:2:88:   required from here    test.C:2:46: error: incomplete type ‘X<100>’ used in nested name specifier
  • With the new #pragma
    GCC ivdep
    , the user can assert that there are no    loop-carried dependencies which would prevent concurrent execution of    consecutive iterations using SIMD (single instruction multiple data)    instructions.

  • Support for Cilk Plus has been    added and can be enabled with the -fcilkplus option.
     Cilk Plus    is an extension to the C and C++ languages to support data and task    parallelism.  The present implementation follows ABI version 1.2; all    features but _Cilk_for have
    been implemented.

C

  • ISO C11 atomics (the _Atomic type specifier and  qualifier and the <stdatomic.h> header)
    are now  supported.

  • ISO C11 generic selections (_Generic keyword) are  now supported.

  • ISO C11 thread-local storage (_Thread_local,  similar to GNU C __thread)
    is now supported.

  • ISO C11 support is now at a similar level of completeness to ISO  C99 support: substantially complete modulo bugs, extended  identifiers (supported except for corner cases  when-fextended-identifiers is
    used), floating-point  issues (mainly but not entirely relating to optional C99 features  from Annexes F and G) and the optional Annexes K (Bounds-checking  interfaces) and L (Analyzability).

  • A new C extension __auto_type provides a subset of  the functionality of C++11 auto in
    GNU C.

C++

  • The G++ implementation of C++1y return type deduction for normal    functions has been updated to conform to    N3638,
       the proposal accepted into the working paper.  Most notably, it adds decltype(auto) for    getting decltype semantics rather than the template argument deduction semantics
    of plain auto:

    int& f();
             auto  i1 = f(); // int
    decltype(auto) i2 = f(); // int&
  • G++ supports C++1y lambda capture initializers:

    [x = 42]{ ... };

    Actually, they have been accepted since GCC 4.5, but now the compiler doesn't warn about them with -std=c++1y, and supports parenthesized and brace-enclosed initializers as well.

  • G++ supports C++1y variable length    arrays.  G++ has supported GNU/C99-style VLAs for a long time, but now    additionally
    supports initializers and lambda capture by reference.  In    C++1y mode G++ will complain about VLA uses that are not permitted by    the draft standard, such as forming a pointer to VLA type or    applying sizeof to
    a VLA variable.  Note that it now appears    that VLAs will not be part of C++14, but will be part of a separate    document and then perhaps C++17.

    void f(int n) {
      int a[n] = { 1, 2, 3 }; // throws std::bad_array_length if n < 3
      [&a]{ for (int i : a) { cout << i << endl; } }();
      &a; // error, taking address of VLA
    }
  • G++ supports the C++1y [[deprecated]]    attribute modulo bugs in the underlying [[gnu::deprecated]] attribute.  Classes
       and functions can be marked deprecated and a diagnostic message added:

    class A;
    int bar(int n);
    #if __cplusplus > 201103
    class [[deprecated("A is deprecated in C++14; Use B instead")]] A;
    [[deprecated("bar is unsafe; use foo() instead")]]
    int bar(int n); int foo(int n);
    class B;
    #endif
    A aa; // warning: 'A' is deprecated : A is deprecated in C++14; Use B instead
    int j = bar(2); // warning: 'int bar(int)' is deprecated : bar is unsafe; use foo() instead
  • G++ supports C++1y digit separators.    Long numeric literals can be subdivided with a single quote ' to enhance readability:

    int i = 1048576;
    int j = 1'048'576;
    int k = 0x10'0000;
    int m = 0'004'000'000;
    int n = 0b0001'0000'0000'0000'0000'0000; double x = 1.602'176'565e-19;
    double y = 1.602'176'565e-1'9;
  • G++ supports C++1y polymorphic lambdas.

    // a functional object that will increment any type
    auto incr = [](auto x) { return x++; };

Runtime Library (libstdc++)

  • Improved support for C++11, including:

    • support for <regex>;

    • The associative containers in <map> and              <set> and
      the unordered associative containers              in <unordered_map> and <unordered_set>  
                 meet the allocator-aware container requirements;

  • Improved experimental support for the upcoming ISO C++ standard, C++14,       including:

    • fixing constexpr member functions without const;

    • implementation of the std::exchange() utility function;

    • addressing tuples by type;

    • implemention of std::make_unique;

    • implemention of std::shared_lock;

    • making std::result_of SFINAE-friendly;

    • adding operator() to integral_constant;

    • adding user-defined literals for standard library types             std::basic_string,std::chrono::duration,
                  and std::complex;

    • adding two range overloads to non-modifying sequence oprations             std::equaland std::mismatch;

    • adding IO manipulators for quoted strings;

    • adding constexpr members to <utility>,
                  <complex><chrono>,
      and some containers;

    • adding compile-time std::integer_sequence;

    • adding cleaner transformation traits;

    • making <functional>s operator functors easier to use             and more generic;

  • An implementation of std::experimental::optional.

  • An implementation of std::experimental::string_view.

  • The non-standard function std::copy_exception has been deprecated        and will be removed in a future version. std::make_exception_ptr  
         should be used instead.

Fortran

  • Compatibility notice:

    • Note that the argument passing ABI has changed for scalar dummy    arguments
      of typeINTEGERREAL,
       COMPLEX and LOGICAL,
      which have  both the VALUE and theOPTIONAL  attribute.

    • Due to the support of finalization, the virtual table associated          with polymorphic variables has changed. Therefore, code containing          CLASS should
      be recompiled, including all files which          define derived types involved in the type definition used by          polymorphic variables. (Note: Due to the incremented module version,          trying to mix old code with new code will usually give an
      error          message.)

    • Module files: The version of the module files (.mod)        has been incremented; additionally, module files are now
      compressed.        Fortran MODULEs compiled by earlier GCC versions have        to be recompiled, when they are USEd
      by files compiled        with GCC 4.9, because GCC 4.9 is not able to read .mod        files of earlier GCC versions;
      attempting to do so gives an error        message. Note: The ABI of the produced assembler data itself has not        changed: object files and libraries are fully compatible to older        versions. (Except for the next items.)

    • ABI changes:

    • GNU Fortran no longer deallocates allocatable variables or        allocatable components of variables declared in the main program. Since        Fortran 2008, the standard explicitly states that variables declared        in the Fortran main program automatically
      have theSAVE        attribute.

    • When opening files, the close-on-exec flag is set if the system        supports such a feature. This is generally considered good practice        these days, but if there is a need to pass file descriptors to child        processes the parent process must now
      remember to clear the        close-on-exec flag by calling fcntl(), e.g. via        ISO_C_BINDING,
      before executing the child process.

  • The deprecated command-line option -fno-whole-file      has been removed. (-fwhole-file is
    the default since      GCC 4.6.) -fwhole-file/-fno-whole-file  
       continue to be accepted but do not influence the code generation.

  • The compiler no longer unconditionally warns      about DO loops with zero iterations.  This warning is now      controlled
    by the -Wzerotrips option, which is implied by      -Wall.

  • The new NO_ARG_CHECK attribute of the !GCC$ directive can
    be used to disable the      type-kind-rank (TKR) argument check for a dummy argument. The feature      is similar to ISO/IEC TS 29133:2012's TYPE(*),
    except that      it additionally also disables the rank check. Variables with      NO_ARG_CHECK have to be dummy
    arguments and may only be      used as argument to ISO_C_BINDING's C_LOC  
       and as actual argument to another NO_ARG_CHECKdummy      argument; also the other constraints of TYPE(*) apply.
         The dummy arguments should be declared as scalar or assumed-size      variable of type type(*) (recommended)
    – or of      type integerrealcomplex  
       or logical. With NO_ARG_CHECK,
    a pointer      to the data without further type or shape information is passed,      similar to C's void*. Note that
    also TS 29113's      type(*),dimension(..) accepts arguments of any type and      rank; contrary to NO_ARG_CHECK assumed-rank
    arguments      pass an array descriptor which contains the array shape and stride      of the argument.

  • Fortran 2003:

    • Finalization is now supported. Note that finalization is currently        only done for a subset of the situations in which it should occur.

    • Experimental support for scalar character components with        deferred length (i.e. allocatable string length) in derived types has        been added. (Deferred-length character variables are supported since  
           GCC 4.6.)

  • Fortran 2008:

    • When STOP or ERROR
      STOP
       is used to terminate        the execution and any exception (but inexact) is signaling, a warning is        printed to ERROR_UNIT,
      indicating which exceptions are        signaling. The -ffpe-summary= command-line
      option can be used to fine-tune        for which exception the warning should be shown.

    • Rounding on input (READ) is now handled on systems where        strtod honours
      the rounding mode. (For output, rounding is        supported since GCC 4.5.) Note that for input, the        compatible rounding
      mode is handled as nearest        (i.e., for a tie, rounding to an even last significant        [cf. IEC 60559:1989]
      – while compatible rounds away        from zero for a tie).

Go

  • GCC 4.9 provides a complete implementation of the Go 1.2.1      release.

新平台支持

AArch64

  • The ARMv8-A crypto and CRC instructions are now supported through       intrinsics. These are enabled when the architecture supports these       and are available through the-march=armv8-a+crc  
        and -march=armv8-a+crypto options.

  • Initial support for ILP32 has now been added to the       compiler. This is now available through the command line option       -mabi=ilp32.
    Support for ILP32 is       considered experimental as the ABI specification is still beta.

  • Coverage of more of the ISA including the SIMD extensions has       been added. The Advanced SIMD intrinsics have also been improved.

  • The new local register allocator (LRA) is now on by default       for the AArch64 backend.

  • The REE (Redundant extension elimination) pass has now been enabled       by default for the AArch64 backend.

  • Tuning for the Cortex-A53 and Cortex-A57 has been improved.

  • Initial big.LITTLE tuning support for the combination of Cortex-A57       and Cortex-A53 was added through the -mcpu=cortex-a57.cortex-a53
          
    option.

  • A number of structural changes have been made to both the ARM       and AArch64 backends to facilitate improved code-generation.

ARM

  • Use of Advanced SIMD (Neon) for 64-bit scalar computations has been disabled by default. This was found to generate better code in only a small number of cases. It can be turned back on with the

    -mneon-for-64bits
     option.

  • Further support for the ARMv8-A architecture, notably implementing       the restriction around IT blocks in the Thumb32 instruction set has       been added. The -mrestrict-itoption
    can be used with       -march=armv7-a or the -march=armv7ve options
          to make code generation fully compatible with the deprecated instructions       in ARMv8-A.

  • Support has now been added for the ARMv7ve variant of the       architecture. This can be used by the -march=armv7ve option.

  • The ARMv8-A crypto and CRC instructions are now supported through       intrinsics and are available through the -march=armv8-a+crc  
        and mfpu=crypto-neon-fp-armv8 options.

  • LRA is now on by default for the ARM target. This can be turned off       using the -mno-lraoption. This option is
    purely       transitionary command line option and will be removed in a future       release. We are interested in any bug reports regarding functional and       performance regressions with LRA.

  • A new option -mslow-flash-data to improve performance       of programs fetching data on slow flash memory has now
    been       introduced for the ARMv7-M profile cores.

  • A new option -mpic-data-is-text-relative for targets       that allows data segments to be relative to text segments
    has       been added. This is on by default for all targets except VxWorks RTP.

  • A number of infrastructural changes have been made to both the ARM       and AArch64 backends to facilitate improved code-generation.

  • GCC now supports Cortex-A12 and the Cortex-R7 through the       -mcpu=cortex-a12 and-mcpu=cortex-r7 options.

  • GCC now has tuning for the Cortex-A57 and Cortex-A53       through the -mcpu=cortex-a57and -mcpu=cortex-a53
          
    options.

  • Initial big.LITTLE tuning support for the combination of Cortex-A57       and Cortex-A53 was added through the -mcpu=cortex-a57.cortex-a53
          
    option. Similar support was added for the combination of       Cortex-A15 and Cortex-A7 through the-mcpu=cortex-a15.cortex-a7
          
    option.

  • Further performance optimizations for the Cortex-A15 and the       Cortex-M4 have been added.

  • A number of code generation improvements for Thumb2 to reduce code       size when compiling for the M-profile processors.

IA-32/x86-64

  • -mfpmath=sse is now implied by -ffast-math on
    all targets where SSE2 is supported.

  • Intel AVX-512 support was added to GCC.  That includes inline      assembly support, new registers and extending existing ones,      new intrinsics (covered by corresponding testsuite), and basic      autovectorization.  AVX-512 instructions are available via
         the following GCC switches: AVX-512 foundation instructions:      -mavx512f, AVX-512 prefetch instructions:-mavx512pf,
         AVX-512 exponential and reciprocal instructions: -mavx512er,      AVX-512 conflict detection instructions: -mavx512cd.

  • It is now possible to call x86 intrinsics from select functions in      a file that are tagged with the corresponding target attribute without      having to compile the entire file with the-mxxx option.
         This improves the usability of x86 intrinsics and is particularly useful      when doing Function
    Multiversioning
    .

  • GCC now supports the new Intel microarchitecture named Silvermont      through-march=silvermont.

  • GCC now supports the new Intel microarchitecture named Broadwell      through-march=broadwell.

  • Optimizing for other Intel microarchitectures have been renamed      to -march=nehalem,westmere,
         sandybridgeivybridge,
         haswellbonnell.

  • -march=generic has been retuned for better support of      Intel core and AMD Bulldozer architectures.  Performance
    of AMD K7, K8,      Intel Pentium-M, and Pentium4 based CPUs is no longer considered important      for generic.

  • -mtune=intel can now be used to generate code running      well on the most current Intel processors, which are Haswell
         and Silvermont for GCC 4.9.

  • Support to encode 32-bit assembly instructions in 16-bit format      is now available through the -m16 command-line
    option.

  • Better inlining of memcpy and memset that
    is aware of value ranges and produces shorter alignment prologues.

  • -mno-accumulate-outgoing-args is now honored when unwind      information is output.  Argument accumulation is also
    now turned off      for portions of programs optimized for size.

  • Support for new AMD family 15h processors (Excavator core)        is now available through the -march=bdver4 and  
         -mtune=bdver4 options.

MSP430

  • A new command-line option -mcpu= has been added to the MSP430 backend.    This option is used to specify the ISA to
    be used.  Accepted values are    msp430 (the default),msp430x and msp430xv2.
     The ISA is no longer deduced    from the -mmcu= option as there are far too many different MCU names.  The    -mmcu= option
    is still supported, and this is still used to select linker    scripts and generate a C preprocessor symbol that will be recognised by the    msp430.h header
    file.

NDS32

  • A new nds32 port supports the 32-bit architecture from Andes      Technology Corporation.

  • The port provides initial support for the V2, V3, V3m      instruction set architectures.

Nios II

  • A port for the Altera Nios II has been contributed by      Mentor Graphics.

PowerPC / PowerPC64 / RS6000

  • GCC now supports Power ISA 2.07, which includes support for Hardware    Transactional Memory (HTM), Quadword atomics and several VMX and VSX    additions, including Crypto, 64-bit integer, 128-bit integer and    decimal integer operations.

  • Support for the POWER8 processor is now available through the    -mcpu=power8 and-mtune=power8 options.

  • The libitm library has been modified to add a HTM fastpath that    automatically uses POWER's HTM hardware instructions when it is    executing on a HTM enabled processor.

  • Support for the new powerpc64le-linux platform has been added.    It defaults to generating code that conforms to the ELFV2 ABI.

S/390, System z

  • Support for the Transactional Execution Facility included with      the IBM zEnterprise zEC12 processor has been added.  A set of      GCC style builtins as well as XLC style builtins are provided.      The builtins are enabled by default when using      the -march=zEC12 option
    but can explicitly be      disabled with -mno-htm.      Using the GCC builtins also libitm supports hardware    
     transactions on S/390.

  • The hotpatch features allows to prepare functions for      hotpatching.  A certain amount of bytes is reserved before the      function entry label plus a NOP is inserted at its very      beginning to implement a backward jump when applying a patch.      The
    feature can either be enabled via command line      option -mhotpatch for a compilation unit or can be      enabled
    per function using the hotpatch      attribute.

  • The shrink wrap optimization is now supported on S/390 and      enabled by default.

  • A major rework of the routines to determine which registers      need to be saved and restored in function prologue/epilogue now      allow to use floating point registers as save slots.  This will      happen for certain leaf function with -march=z10  
       or higher.

  • The LRA rtl pass replaces reload by default on S/390.

RX

  • The port now allows to specify the RX100, RX200, and RX600 processors      with the command line options -mcpu=rx100, -mcpu=rx200 and -mcpu=rx600.

SH

  • Minor improvements to code generated for integer arithmetic and code    that involves the T bit.

  • Added support for the SH2A clips and clipu  
     instructions.  The compiler will now try to utilize them for min/max    expressions such as max (-128, min (127, x)).

  • Added support for the cmp/str instruction through built-in    functions such as__builtin_strlen.
     When not optimizing for    size, the compiler will now expand calls to e.g.strlen as an    inlined sequences which
    utilize the cmp/str instruction.

  • Improved code generated around volatile memory loads and stores.

  • The option -mcbranchdi has been deprecated.  Specifying it    will result in a warning and will not influence code
    generation.

  • The option -mcmpeqdi has been deprecated.  Specifying it    will result in a warning and will not influence code generation.

具体内容请看发行说明

GCC 4.9.0 公布,提升 C++11 和 C++14 特性的更多相关文章

  1. 编译安装GCC 5.2.0

    https://blog.atime.me/note/install-gcc-5.2.0-from-source.html 记录编译GCC 5.2.0时遇到的问题和解决方法,以备日后查询. 平时使用的 ...

  2. Qt on Android: Qt 5.3.0 公布,针对 Android 改进的说明

    5月20日本,Qt 官方博客宣布 Qt 5.3.0 公布! 这个版本号聚焦在性能.稳定性和可用性的提升上,与 5.1 / 5.2 相比有非常大提升. 5.3.0 的主要变化: 稳定能.可用性大大提升 ...

  3. (数据科学学习手札139)geopandas 0.11版本重要新特性一览

    本文示例代码已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 大家好我是费老师,就在几天前,geopandas ...

  4. Solr4.8.0源码分析(11)之Lucene的索引文件(4)

    Solr4.8.0源码分析(11)之Lucene的索引文件(4) 1. .dvd和.dvm文件 .dvm是存放了DocValue域的元数据,比如DocValue偏移量. .dvd则存放了DocValu ...

  5. Asp.Net Core 2.0 项目实战(11) 基于OnActionExecuting全局过滤器,页面操作权限过滤控制到按钮级

    1.权限管理 权限管理的基本定义:百度百科. 基于<Asp.Net Core 2.0 项目实战(10) 基于cookie登录授权认证并实现前台会员.后台管理员同时登录>我们做过了登录认证, ...

  6. gcc 6.2.0/6.3.0/8.2.0 编译安装

    参考:http://www.linuxfromscratch.org/blfs/view/stable/general/gcc.html 下载地址在这里:https://ftp.gnu.org/gnu ...

  7. ubuntu 13.04 编译 安装 升级 gcc 4.9.0 address sanitizer

    @ 前记: 最近查一个线上项目的crash,review代码无果,crash几率低,不可在本地环境重现.之后在线上好几个服务器跑valgrind就不crash了.个人猜测可能是跑valgrind后性能 ...

  8. 【ERROR】while loading shared libraries: /u01/app/oracle/product/11.2.0/lib/libclntsh.so.11.1: cannot

    问题: [oracle@mydb]$ lsnrctl status lsnrctl: error while loading shared libraries: /u01/app/oracle/pro ...

  9. GCC 7.3.0版本编译http-parser-2.1问题

    http-paser是一个用c编写的http消息解析器,地址:https://github.com/nodejs/http-parser,目前版本2.9 今天用gcc 7.3.0编译其2.1版本时,编 ...

随机推荐

  1. 开启nginx目录文件列表功能

    ngx_http_autoindex_module  此模块用于自动生成目录列表,ngx_http_autoindex_module只在 ngx_http_index_module模块未找到索引文件时 ...

  2. Linux学习笔记:pwd与dirs的区别

    在Linux中可以使用pwd和dirs进行当前目录查看,分别用于显示当前目录和显示完整目录记录.具体如下: 1.pwd 显示当前目录 2.dirs 显示目录堆叠中的记录 END 2018-08-21  ...

  3. GreenPlum学习笔记:基础知识

    一.介绍 GreenPlum分布式数据仓库,大规模并行计算技术. 无共享/MPP核心架构 Greenplum数据库软件将数据平均分布到系统的所有节点服务器上,所以节点存储每张表或表分区的部分行,所有数 ...

  4. VMware虚拟机的三种联网方法及原理(转)

    转自:http://blog.chinaunix.net/uid-24876683-id-3593774.html 一.Brigde——桥接 :默认使用VMnet0 .原理: Bridge 桥&quo ...

  5. Robots.txt 不让搜索引擎收录网站的方法

    有没有担心过自己的隐私会在强大的搜索引擎面前无所遁形?想象一下,如果要向世界上所有的人公开你的私人日记,你能接受吗?的确是很矛盾的问题,站长们大都忧虑“如何让搜索引擎收录的我的网站?”,而我们还是要研 ...

  6. 一步一步学习IdentityServer4 (3)自定登录界面并实现业务登录操作

    IdentityServer4 相对 IdentityServer3 在界面上要简单一些,拷贝demo基本就能搞定,做样式修改就行了 之前的文章已经有登录Idr4服务端操作了,新建了一个自己的站点 L ...

  7. JAVA类课后练习

    1.Pg168--2 package com.hanqi; import java.util.Scanner; public class Rectangle { Rectangle() { //完成初 ...

  8. js处理局部scroll事件禁止外部scroll滚动解决办法,jquery.mousewheel.js处理时禁止办法说明

    js Code: <script> window.onload = function() { for (i = 0; i < 500; i++) { var x = document ...

  9. easyUI小技巧-纯干货

    一.显示分页(pagination:true)情况下,隐藏每页显示的记录条数的那个select(即pageList),下图箭头 方法1:onBeforeLoad:function(param){    ...

  10. Gitlab管理用户、组、权限(二)

    一. 保护主要分支 保护某个分支,不让项目中其它的成员进行改变里面的内容,和不允许他们进行和保护的分支进行合并.当某个分支设置为保护的时候,那么拥有开者者权限或以下的权限都会受到影响. 执行步骤: 1 ...