最近的接触的一个项目还在用gcc 4.8.5,除了这年月还在用C++98让我抓狂外,老编译器也会带来无谓的性能上的损失,即使代码是完全一样的
gcc 5之后增加了SSO的支持,当字符串长度不大于15的时候,不会进行动态内存分配,而是直接存储在std::string
的结构体内
#include <cstdlib>
#include <iostream>
void* operator new(size_t n) {
std::cout << "\tallocates\n"
最近的接触的一个项目还在用gcc 4.8.5,除了这年月还在用C++98让我抓狂外,老编译器也会带来无谓的性能上的损失,即使代码是完全一样的
gcc 5之后增加了SSO的支持,当字符串长度不大于15的时候,不会进行动态内存分配,而是直接存储在std::string
的结构体内
#include <cstdlib>
#include <iostream>
void* operator new(size_t n) {
std::cout << "\tallocates\n"