Go语言中文网 为您找到相关结果 93

golang对共享内存的操作

不同进程间的内存是互相独立的,没办法直接互相操作对方内的数据,而共享内存则是靠操作系统提供的内存映射机制,让不同进程的一块地址空间映射到同一个虚拟内存区域上,使不同的进程可以操作到一块共用的内存块。共享内存是效率最高的进程间通讯机制,因为数据不需要在内核和程序之间复制。 共享内存用到的是系统提供的mmap函数,它可以将一个文件映射到虚拟内存的一个区域中,程序使用指针引用这个区域,对这个内存区域的操作会被回写到文件上,其函数原型如下: void *mmap(void *addr, size_t len, int prot, int flags, int fd, off_t offset); 参数fd为即将映射到进程空间的文件描述字,一般由open()返回,同时,fd可以指定为-1,此时须指定f...阅读全文

博文 2014-10-04 19:27:13 壬癸甲乙

百度云虚拟主机做网站有哪些优势?

众所周知百度是国内最大的搜索引擎、最大的中文网站。百度推出的云服务器、云虚拟主机、域名服务等质量可靠,对于客户的网站来说,能够保证访问的速度、稳定和安全。 百度云虚拟主机是最新的的容器技术、热迁移技术和百度生态能力提供的新一代网站主机服务,能够保证高性能、高可靠性、高安全性和高易用性等,即使是零基础的站长也可以轻松搞定网站的部署、发布、运维、推广,这无论是对企业还是个人网站来说都有非常大的作用。 ![虚拟主机.jpg](https://static.studygolang.com/180420/59974fa5a2ba4eec783545b7a6caebd8.jpg) 那么百度云虚拟主机的优势又有哪些? 高稳定 基于百度云的核心技术,故障服务方面可秒级热迁移...阅读全文

百度云主机的优势

在百度上搜索云主机,出现了大量的品牌名称,可谓百花齐放。但对不太懂服务器、建站的小白来说,要在茫茫的云主机海洋中选出一款适合自己的,实在是太困难了。在选择之前,大家不妨先做点功课,了解一下云主机的相关知识。 首先,什么是云主机呢?云主机又叫云虚拟主机,是在一个云服务器上划分出来的100M、200M等不同型号的小型空间,每个用户都有一个独立的IP,用来安放你做好的网站供用户访问,云主机比普通虚拟主机更稳定。 度娘上有包括阿里云、腾讯云、360云、百度云在内的数十种xx云主机,如果是完全没有经验的人进行选购,估计真的要选择困难了,因为这几个品牌,除开“云”字,看上去都挺靠谱的,质量自然不用担心了,效果怎么样呢? 众所周知,百度是目前中国使用率最高的搜索引擎,我们所做的一切关于...阅读全文

百度云虚拟主机与传统虚拟主机有什么区别?

在互联网飞速发展的时代,在选择虚拟主机时,市面上各类主机都有,在选择上大家都眼花缭乱,今天想通过一些对比跟大家分享最新推出的百度云虚拟主机与传统虚拟主机的区别。 (https://static.studygolang.com/180420/4361a3cd37433dc372b9ee4609202e7d.jpg) 一、传统虚拟主机与百度云虚拟主机是什么 虚拟主机,被称之为“网站空间”,也就是大家口中所说的空间,它利用技术把一台服务器分成多个具有独立的域名和完整的Intenet服务器功能、并且共享服务器的带宽和IP的“虚拟”的主机。 百度云虚拟主机,拥有容器技术、具有领先特性的新一代云主机,能提供新一代网站主机服务,率先支持SSL安全加密证书与Nginx搞笑WED框...阅读全文

来,控制一下 Goroutine 的并发数量

文地址:来,控制一下 Goroutine 的并发数量 问题 func main() { userCount := math.MaxInt64 for i := 0; i < userCount; i++ { go func(i int) { // 做一些各种各样的业务逻辑处理 fmt.Printf("go func: %d\n", i) time.Sleep(time.Second) }(i) } } 在这里,假设 userCount 是一个外部传入的参数(不可预测,有可能值非常大),有人会全部丢进去循环。想着全部都并发 goroutine 去同时做某一件事。觉得这样子会效率会更高,对不对! 那么,你觉得这里有没有什么问题? 噩梦般的开始 当然,在特定场景下,问题可大了。因为在本文被丢进去同...阅读全文

Golang高阶:Golang协程实现原理

版权所有,转载请注明:http://www.lenggirl.com/go/goroutine.html 引言 实现并发编程有进程,线程,IO多路复用的方式。(并发和并行我们这里不区分,如果CPU是多核的,可能在多个核同时进行,我们叫并行,如果是单核,需要排队切换,我们叫并发) 进程是计算机资源分配的最小单位,进程是对处理器资源,虚拟内存(1)的抽象,而虚拟内存是对主存资源和文件(2)的抽象,文件是对I/O设备的抽象。线程是计算机调度的最小单位,共享同个进程分配的计算机资源。 上面这些是在深入理解计算机系统说的,如果有错来咬我呀。 总上所述,实际实现并发的是线程。首先,每个进程都有一个主线程,因为线程是调度的最小单位,你可以只有一个线程,但是你也可以创建多几个线程,线程调度需要CPU来切换,...阅读全文

博文 2019-05-15 11:34:56 veeeeeeeeeeee

百度云虚拟主机有助于提升网站收录和排名?

站长朋友都知道,要想网站在搜索引擎中能有好排名,需要依靠搜索引擎的搜索规则对网站进行优化。网站优化是一个系统综合的过程,从前期的建站规划到后期的网站运营,SEO无处不在。 为了提升网站排名,很多企业会选择用虚拟主机来托管网站,而在选择虚拟主机上,大家都会针对各种虚拟主机进行对比,而百度作为国内最大的搜索引擎、最大的中文网站,它推出的百度云虚拟主机对于网站排名有什么影响?是否有助于提升网站收录和排名? (https://static.studygolang.com/180423/5573a455ca7ad1d725e486a864bbca89.png)![5555.png] SEO友好度 网站优化获得好排名是基于搜索引擎自然排名机制,而搜索引擎的排名机制又以用户...阅读全文

双线虚拟主机为何那么火?优势在哪?

在说优势之前先简单科普一下什么是双线虚拟主机,双线虚拟主机又称为智能双线虚拟主机和智能双线网站空间,它能解决国内南北方电信和网通用户互联互通的问题特推出的智能双线虚拟主机服务。 从分类上看双线虚拟主机包括单IP地址单网卡、双IP地址单网卡和双IP地址双网卡等三种类型。其中单网卡双IP和双网卡双IP两种都有一个电信IP地址和一个网通IP地址。电信用户访问电信IP地址,网通用户访问网通IP地址,这样才能实现电信网通快速访问。 我们都知道南电信、北联通,国内线路分为电信和联通。在线路的访问上,电信用户、联通用户互访速度都比较快,而两大运营商之间互相访问则速度会比较慢。如果你的主机只有一条线路,那么网站就有可能因为线路的问题,在国内有的地区打开速度可能会很慢。访问过来的用户会以为是网站的...阅读全文

golang 基于beego web框架写的 web页面自由配置nginx虚拟主机

nginxconf web页面自由配置nginx虚拟主机 该项目基于golang的 beego web框架 主要实现了一下功能 创建新的nginx代理配置文件 并自动调用 nginx reload 命令 暂时没有实现删除配置文件命令 应用场景 nginx需要实现代理访问多个主机,操作人员无需懂得nginx配置只需要在web页面点击下鼠标即可 多个 golang 应用程序在服务器后台运行在非80端口,nginx更具不同的域名代理访问不同的golang应用程序 改造后可以做什么? 增加设置多个nginx配置模板,可以实现负载均衡、自动配置虚拟主机等高级的nginx的功能 nginx配置模板为nginxconf/template/domainlocalconf.tpl 该项目使用帮助 由于我在wi...阅读全文

博文 2015-03-20 20:00:01 young-轻人

购买国内虚拟主机怎样选择机房?需要注意什么?

购买了国内虚拟主机,怎样选择机房,成了大家头疼的事情,毕竟没有好的机房去辅助,再好的虚拟主机也不能很好的发挥。 国内虚拟主机机房的选择主要考虑是速度,安全等,另外举例网站访客的物理位置靠近,举例越短访问速度快而且稳定。 分两方面考虑,地理位置和是否备案 从地理位置上。一般情况下我们建议选择离自己目标用户所在地域最接近的数据中心,这样可以进一步提升用户访问速度。比如:华北用户推荐选北京和青岛地域,华东用户选杭州地域,华南地域用户可选广州和深圳地域。机房越近,你搭建的网站就经常有秒开的刺激。与自己的电脑本地搭建的服务器相近。 从备案与否。无论是华北机房用户,还是其他国内机房,国内机房都需要按照工信部的要求来操作,对网站进行备案,域名有备案号则可直接购买主机使用。如购买的国...阅读全文

为 Golang 项目创建虚拟隔离环境

goenv:为 Golang 项目创建隔离的虚拟环境,包括创建独立目录,设置 GOPATH 环境变量 **使用**: 1. 下载 goenv.sh 文件。 2. 在启动文件中添加类似以下内容 (注意调整路径)。 ``` export GOHOME=$HOME/myprojects source goenv.sh ``` 3. 可使用 source 命令使其立即生效。 4. 输入 goe 显示帮助信息。 项目由《Go学习笔记》大神 雨痕 出品,地址:https://github.com/qyuhen/goen...阅读全文

Go 语言的内存管理

这篇博客是我在维尔纽斯的 [Go Meetup](https://www.meetup.com/Vilnius-Golang/events/249897910/) 演讲的总结。如果你在维尔纽斯并且喜欢 Go 语言,欢迎加入我们并考虑作演讲 在这篇博文中我们将要探索 Go 语言的内存管理,首先让我们来思考以下的这个小程序: ```go func main() { http.HandleFunc("/bar", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "Hello, %q", html.EscapeString(r.URL.Path)) }) http.ListenAndServe(":8080", nil) }...阅读全文

博文 2018-09-20 22:25:03 polaris

升级到Catalina后,golang执行问题

升级到Catalina 10.15后,golang编译完成后,执行二进制文件报错: dyld: malformed mach-o image: segment __DWARF has vmsize < filesize 下边我们简单的说一下 Mach-O 文件。 Mach-O 我们知道,进程是可执行文件在内存中加载得到的结果,而 Mach-O 就是一种 macOS 平台的可执行文件格式。 Mach-O 文件分为三个区域 Header、Load commands、Data。其中 Load commands 区的指令指导如何设置并加载二进制数据。 LC_SEGMENT 对应的数据结构:segment_command 定义了这个文件中的一个 segment,在 Mach-O 文件被加载到时,这个 ...阅读全文

博文 2019-10-10 16:33:06 aside section ._1OhGeD

做网站用什么主机好

相信接触过建站的小伙伴都知道,做一个网站需要域名、空间和建站程序。域名通常就.com/.cn/.net这些主流域名,建站程序有自主开发的程序和自助建站工具,空间呢?空间又叫主机,大家最懵的也是主机。 选购主机,要考虑的因素无非就是价格、空间大小、行业匹配度、安全性(稳定性)和售后服务。主机的价格从一两百到上万元不等,价格最重要的决定因素是主机的空间大小。 怎么知道自己应该用多大的空间呢? 主机是用来安放你的网站供用户访问的,针对企业主要分为M型和G型。这里的M、G我们说的一张图片占多少空间的单位,1G=1024M。如果你不知道自己的网站做好后占据多大空间,可以先选择小空间的虚拟主机。耐思尼克的虚拟主机有多规格空间供大家选择,即使购买后发现空间不够用,也可以随时进行升级,...阅读全文

Go语言是如何处理栈的

Go语言是如何处理栈的 十一 05 bigwhite技术志 cloudflare, Go, Golang, Google, goroutine, heap, Memory, OS, runtime, Stack, Thread, vitualmemory, 垃圾回收, 栈, 线程, 虚拟内存, 运行时 No Comments Go 1.4Beta1刚刚发布,在Go 1.4Beta1中,Go语言的stack处理方式由之前的"segmented stacks"改为了"continuous stacks"。关于Go语言对stack的处理机制、发展历史、存在问题等,CloudFlare的一篇官方blog进行了系统的阐述,这里的内容就是 翻译自CloudFlare的那篇blog:《How Stacks...阅读全文

博文 2014-11-06 10:53:30 bigwhite

python2和python3兼容的问题?python工程师培训

Python目前有两个主版本并存,这很让人苦恼。虽然Python 3有许多优于Python 2的特性,但是Python 2的生态系统更为完善,支持的包更多。因为生态系统内部的依赖关系,许多软件包的运行说明会直接指定“仅适用于Python 2.7版本”。那么如何在不同的应用场景下切换这两种Python版本?答案是:安装虚拟环境。 在虚拟环境里,各种软件包的版本,都由你来指定。它们和系统默认Python环境是相互隔离的,因此互不干扰。 虚拟环境的具体安装方法,可以在查找老男孩教育官网(www.oldboyedu.com)。 **老男孩教育IT培训班型有:** 1. 全日制:Linux云计算运维、Python全栈开发+人工智能、Java全栈开发、大数据开发 适合于:0...阅读全文

ActivedRouter--golang实现的反向代理、监控

基于golang 实现了简单的http反向代理服务器,监控服务器,客户端程序 ,和一个基于web的监控页面。 通过ActivedRouter 可实现自动摘除宕机服务器,的真机负载。也可以实现IP轮训负载。项目地址: github简单介绍一、通过ActivedRouter可以实现什么功能?1、可以集群服务器的监控,通过提供的web Dashboard可以时刻监控每一台服务器的负载、内存、网络、 磁盘等信息。 2、反向代理服务器功能,例如Nginx的功能,可以针对不同的域名对不同的业务服务器集群进行反向代理。 3、Server & Client 模式组合下,可以用作服务器监控使用,并且可以设置监控报警,Server端可以选择性 开启监控Dashboard,用于直观的web界面监控。 4、服务器监...阅读全文

博文 2016-07-11 17:00:02 yue7603835

记录一个在线的虚拟机开发环境(go、ruby、python、java...)

https://www.nitrous.io/ 需要注册,开发环境是一个类linux虚拟机,虽然创建虚拟机时需要选择语言,但我测试了,go语言下的虚拟机,其实同时也支持了c/c++、java、python、ruby 可以和 http://ideone.com/ 对比一下,支持语言没有那么多,但是开发限制少了很多,完全可以上传自己的IDE和调试工具。 事实上,这个环境可以基本支持一个博客或者网站了;当然,和购买的空间不一样,这个不能老是开着...阅读全文

博文 2014-10-06 00:36:32 刘地

[token-ticker] 一个用命令行查看虚拟货币在各大交易所行情的工具

分享一个用Go写的命令行工具,在terminal里查看虚拟货币在你常用的交易所的价格,炒币的程序员必备。 ![token-ticker](https://user-images.githubusercontent.com/2657334/40175207-ff9e6504-5a09-11e8-9a3d-a887ebc4895a.png) 目前支持的交易所有: * [Binance](https://www.binance.com/) * [CoinMarketCap](https://coinmarketcap.com/) * [Bitfinex](https://www.bitfinex.com/) * [Huobi.pro](https://www.huobi.p...阅读全文

存储组织协调引擎 REX-Ray

REX-Ray 是一个 EMC {code} 团队领导的开源项目,为 Docker、Mesos 及其他容器运行环境提供持续的存储访问。其设计旨在囊括通用存储、虚拟化和云平台,提供高级的存储功能。 当前支持的系统: * Ubuntu * Debian * RedHat * CentOS * CoreOS * OSX 运行时 CLI:

$ export REXRAY_STORAGEDRIVERS=ec2
$ export AWS_ACCESSKEY=access_key
$ export AWS_SECRETKEY=secret_key
$ rexray vol...阅读全文

同一个网站,手机端跟电脑端显示不同是怎么实现的?

同一个网站,手机端跟电脑端不同是怎么实现的?常见的方式有三种:1,自适应网站同一套代码,自动实现手机端和电脑端的布局自动调整。例如:openGPS.cn 网站现在大部分页面已经支持自适应展示,手机端电脑端都可以访问本站内容,正常阅读。自适应站点,往往是对CSS布局的重点考虑,本站使用的是BootStrap这个前端样式组件实现的自适应布局。2,网站二级目录这种是早期网站比较喜欢的做法,因为其实这是一个网站。早期网站往往是使用虚拟主机(也叫空间)发布,一个空间只能放一个网站,所以这种做法在早期特别流行。这种结构本质还是一个网站,但是针对手机电脑客户端单独做了往往对应的一套目录,例如:电脑站点地址一般是:www.domain.com/xxxxxxx手机站点地址往往是:www.domain.com/...阅读全文

图解Go内存分配器

本文翻译自《A visual guide to Go Memory Allocator from scratch (Golang)》。 当我刚开始尝试了解Go的内存分配器时,我发现这真是一件可以令人发疯的事情,因为所有事情似乎都像一个神秘的黑盒(让我无从下手)。由于几乎所有技术魔法都隐藏在抽象之下,因此您需要逐一剥离这些抽象层才能理解它们。 在这篇文章中,我们就来这么做(剥离抽象层去了解隐藏在其下面的技术魔法)。如果您想了解有关Go内存分配器的知识,那么本篇文章正适合您。 一. 物理内存(Physical Memory)和虚拟内存(Virtual Memory) 每个内存分配器都需要使用由底层操作系统管理的虚拟内存空间(Virtual Memory Space)。让我们看看它是如何工作的吧。...阅读全文

国内主机与海外主机的区别是什么

站长建站的时候都遇到过主机选择困难的问题,一个是听上去高大上的国外主机,一个是纷繁多样的国内主机,到底怎么选择?其实,只要了解了它们的区别,选择就容易多了。下面给大家整理了国内和国外主机的六大差别,供大家选购参考。 1、备案:国内主机必须备案,国外主机不需要。 国外主机可以说是懒人福音,但如果为了省略这点手续就选择国外主机,并不值哦。因为现在国内一些主机商会包办备案服务,大家准备资料就可以了。 2、访问速度:国内主机国内访问快,国外主机国外访问快。 如果你的网站主要针对国内用户,选择国内主机才是最合适的,因为国外的服务器在国内的响应速度比较慢,因为网站打不开而丧失客户,实在有点冤。如果是专门做外贸的,建议根据外贸地域选择主机。 3、空间大小:如果说国内主机的空间是香辣鸡...阅读全文

程序员怎么会不知道 C10K 问题呢?

今天简单说下C10K 的问题,关于这个问题Ruby 的作者松本行弘在《代码的未来》- 云计算时代的编程 一章中有详细的阐述, 有兴趣的同学可以直接去购买。本人已经在某淘,购买一本 哈哈哈~~~ 在做技术规划和架构设计的时候,不要做过度设计,如果咱们只有一万用户,先别去操百万用户在线的心。淘宝那么大,也是从 Apache、PHP、MySql 发展起来的, 没人能预见到淘宝能发展到这样一个规模,一旦发展起来,业务的爆发增长会驱动技术的迅速发展,在业务还不及格的时候,不用为技术的未来担心。 这个思路在业务领域不会有太大的问题,因为需求的变化实在太快了,需要实时去应付。但在底层技术的发展上,我们就有可能遇到短视的报复,比如:这个数据长度不会超过16位吧,这个程序不可能使用到2000年吧。于是就有了千...阅读全文

探索Go内存管理(分配)

基于1.8.3版本,64位Linux操作系统 1、概述 Go内存管理基于tcmalloc,使用连续虚拟地址,以页(8k)为单位、多级缓存进行管理; 在分配内存时,需要对size进行对齐处理,根据best-fit找到合适的mspan,对未用完的内存还会拆分成其他大小的mspan继续使用 在new一个object时(忽略逃逸分析),根据object的size做不同的分配策略: 极小对象(size<16byte)直接在当前P的mcache上的tiny缓存上分配; 小对象(16byte <= size <= 32k)在当前P的mcache上对应slot的空闲列表中分配,无空闲列表则会继续向mcentral申请(还是没有则向mheap申请); 大对象(size>32k)直接通过mheap申请。 2、数...阅读全文

博文 2017-09-14 03:34:51 Love语鬼

LinuxVPS使用skicka将文件上传至GoogleDrive网盘,支持编辑-下载等+英国免备案虚拟主机

阐明:此前操纵VPS和Google Drive网盘都是用的rclone挂载同步方式,教程检察:在Debian/Ubuntu上应用rclone挂载Google Drive网盘,现时再分享个方式,应用skicka来举行VPS和GD之间的同步操纵,也能够操纵网盘,譬如创办文献/文献夹、编纂/下载等,速率都还不错,挺便宜的。这边说下装置教程。装置Github地点:https://github.com/谷歌/skicka1、装置Go言语#Debian/Ubuntu体系apt-get -y install golang#创办目次并界说GOPATH情况变量指向该目次mkdir ~/workspaceecho 'export GOPATH="$HOME/workspace"' >> ~/.bashrcsou...阅读全文

博文 2018-10-07 18:34:43 香港虚拟主机圈

详解Go语言的内存模型及堆的分配管理

前言 这篇文章主要介绍Go内存分配和Go内存管理,会轻微涉及内存申请和释放,以及Go垃圾回收。从非常宏观的角度看,Go的内存管理就是下图这个样子,我们今天主要关注其中标红的部分。 Go这门语言抛弃了C/C++中的开发者管理内存的方式,实现了主动申请与主动释放管理,增加了逃逸分析和GC,将开发者从内存管理中释放出来,让开发者有更多的精力去关注软件设计,而不是底层的内存问题。这是Go语言成为高生产力语言的原因之一。 我们不需要精通内存的管理,因为它确实很复杂,但掌握内存的管理,可以让你写出更高质量的代码,另外,还能助你定位Bug。这篇文章采用层层递进的方式,依次会介绍关于存储的基本知识,Go内存管理的 “前辈” TCMalloc,然后是Go的内存管理和分配,最后是总结。这么做的目的是,希望各位能...阅读全文

博文 2019-08-05 23:04:24 零壹技术栈

云主机与虚拟主机的区别是什么

普通虚拟主机:虚拟主机,也叫“网站空间”,就是把一台运行在互联网上的物理服务器划分成多个“虚拟”服务器,每个空间都给予相应的FTP权限和Web访问权限,以用于网站发布。 云虚拟主机:是普通虚拟主机的升级版。在云服务器基础上,使用云计算技术,更稳定、安全,可用性更强的虚拟主机。 虚拟主机的特点 1、 价格便宜。虚拟主机是标准的资源共享,性能虽然比不上VPS和服务器,但胜在价格,适合前期建设的网站。 2、 操作简便。虚拟主机的控制面板上有明确的在线解压、绑定域名、301重定向等设置,比较适合新手操作。 3、升级方便。如果在耐思尼克购买虚拟主机,主机升级只要用户在线提交申请,不用对网站进行更改,网站依然能正常运行,不够空间也不用担心。 云虚拟主机的特点 1、 通过...阅读全文

golang中syscall.Mmap()教程-对共享内存的操作

不同进程间的内存是互相独立的,没办法直接互相操作对方内的数据,而共享内存则是靠操作系统提供的内存映射机制,让不同进程的一块地址空间映射到同一个虚拟内存区域上,使不同的进程可以操作到一块共用的内存块。共享内存是效率最高的进程间通讯机制,因为数据不需要在内核和程序之间复制。 共享内存用到的是系统提供的mmap函数,它可以将一个文件映射到虚拟内存的一个区域中,程序使用指针引用这个区域,对这个内存区域的操作会被回写到文件上,其函数原型如下: void *mmap(void *addr, size_t len, int prot, int flags, int fd, off_t offset); 参数fd为即将映射到进程空间的文件描述字,一般由open()返回,同时,fd可以指定为-1,此时须指定f...阅读全文

博文 2018-08-07 01:34:53 豆瓣奶茶

golang内存管理

几个关键数据结构 mspan 由mheap管理的页面,记录了所分配的块大小和起始地址等 mcache 与P(可看做cpu)绑定的线程级别的本地缓存 mcenter 全局空间的缓存,收集了各种大小(67种)的span列表 mheap 分配内存的堆分配器,以8kb进行页管理 fixalloc 固定尺寸的堆外对象空闲列表分配器,用来管理分配器的存储 内存分配逻辑 如果object size>32KB, 则直接使用mheap来分配空间; 如果object size<16Byte, 则通过mcache的tiny分配器来分配(tiny可看作是一个指针offset); 如果object size在上面两者之间,首先尝试通过sizeclass对应的分配器分配; 如果mcache没有空闲的span, 则向mc...阅读全文

博文 2019-08-09 00:32:55 SuperGopher

小型独立的 HTTP 服务器 devd

devd 是一个小型的、独立的、使用命令行的 HTTP 服务器,一个给开发者的本地 web 服务器。 特性: * **跨平台和自适应**。一个单独的静态编译二进制文件,没有外部依赖,适用于 OSX, Linux 和 Windows * **设计用于终端**。没有配置文件,没有系统守护进程,日志在终端阅读。 * **Livereload。**当 liverload 可用时,devd 插入一个小的脚本到 HTML 页面,在关闭 Head 标签之前。 * **反向代理+静态文件服务器+灵活的路由** * **轻型虚拟主机** * **延迟和带宽模拟** ![screenshot](http://static.oschina.net/uploads/img/201510/231704...阅读全文

猎奇过后,VR还有什么能让用户买单?

VR乍到之时,声如迅雷,来势汹汹却转瞬而逝。 能够在市场激起千层浪,大抵是因其强势地撩起了不少好奇心者,而随着这个热闹周围聚拢层层的围观者,自然吸引了更多人驻足。 但围观之下,好奇心不会转化为购买率。围观者居多,但是让好奇心者转化为用户,还有很长的路要走。正如 Oculus 创始人帕尔默•拉奇在接受《金融时报》采访时表示,“虚拟现实设备成为生活中的一部分,可能要花上 5 年,甚至是更长的 10 年时间”。 用户都是见证者,能挺过这段寂寞时光的,升华。 没内容,谁肯买单?VR领域有“钱”途,大伙儿一股脑地往里钻,很正常,不奇怪。 但很多人都仅仅将它视为一个新鲜的新设备,用技术去消费大众的猎奇心。但事实上,行业十分缺乏优质的代表,关键性技术节点远未突破,VR...阅读全文

再看Go语言的分段栈

2013-12-02 再看Go语言的分段栈 再看Go语言的分段栈 Go语言1.2今天发布了,其中有一项改变是默认的栈大小从之前的4096增加到了8K。记得早些时候就有人提到这个代码改动,还提醒大家注意,说每条网络连接开一个goroutine现在消耗内存会翻倍了。当时没有认真想,就觉得好像是那么回事。并且也没有深究Go为什么会做出这个改动。 直到今天看到Go 1.3的路线,说下个版本中将会做出的一个重大的改动就是不再使用分段栈的设计。这下我才觉得应该好好审视一下Go语言的分段栈设计了。 第一个问题就是:4k还是8k? 最初Go将一个goroutine的初始栈大小定为4k,正好一个操作系统内存页的大小,这是一个并没有经过深思熟虑的设计。这个值的大小本来是应该跟据大多数goroutine运行时消耗...阅读全文

博文 2015-03-20 13:24:21 zenlife

boltdb 源码分析-简介-0

boltdb boltdb是一款golang实现的嵌入式K-V存储引擎。在boltdb的源码中的doc.go 对其有一个简要的说明。 其提供事务、ACID语言、无锁MVCC支持。数据提供零拷贝、B-TREE索引。其主要设计源于Howard Chu的LMDB。 持久化 boltdb采用一个单独的文件作为持久化存储。其将不同的文件部分划分为不同的page,不同的page 存储不同类型的数据(meta、key、value)等。当经过反复的增删改查后,文件中可能出现没有数据的 部分。此时boltdb并不打算搬移数据、截断文件来将多余的空间返还给操作系统。而是将这些部分, 加入内部的FreeList来维护,当有新的数据写入时,复用这些空间。因此从用户视角来看,boltdb 的持久化文件只会增大,而不会...阅读全文

虚拟主机“流量”是指什么?与日常手机流量有什么区别

想必有很多朋友都有使用过虚拟主机建站的经历。不过在建站之前,大家可能都需要选购虚拟主机,而在选择虚拟主机的时候,我们一般都会在主机配置中看到有“流量”的选项。国内虚拟主机一般是几个G,而国外虚拟主机一般是不限制流量。那么,这里的虚拟主机流量是指什么呢? 对于虚拟主机流量来说,与咱们常常说的网站流量可能不大一样。这里的虚拟主机流量,主要是指用户可以从服务器传输进和输出数据总量(类似咱们用手机上网产生流量)。简而言之,就是当用户在访问网站时,产生数据量的总和。 目前,大多虚拟主机商都是按照月为单位来计算的,比如每月3G,每月5G限制这样的月流量。 为了让大家更直观地理解,这里简单的举个例子:假设一个网站每个网页+图片的大小是20K,当月总共累计被访问了4000次网页,那么网站这个月所需...阅读全文

DockOne微信分享(六十一):虚拟化老兵介绍虚拟化技术

【编者的话】本次分享从以下4方面展开: 虚拟化主流技术介绍虚拟化前沿技术介绍Docker技术介绍MixSAN技术介绍 大家好,我是徐安,一位虚拟化老兵。2010年开始在世纪互联(云快线)接触云计算和虚拟化技术,应该算是国内较早的一批人吧。目前在汉柏科技有限公司,负责服务器虚拟化以及桌面虚拟化产品的技术工作。 我将从虚拟化的主流技术介绍,前沿技术介绍,Docker技术介绍,MixSAN技术介绍四个方面展开今天的分享。由于笔者水平和知识所限,难免有理解不正确的地方,请各位大牛批评指正。 首先让我们看看主流虚拟化技术有哪些,无非就是CPU虚拟化,内存虚拟化,网卡虚拟化,磁盘虚拟化。 KVM是目前最主流的虚拟化技术,自Linux 2.6.20之后集成在各主要Linux发行版本中。KVM分为四个模式,...阅读全文

博文 2017-06-25 16:25:03 氨水

Golang语言——垃圾回收

垃圾回收涉及到:阈值触发,并行标记,并发清理。或者:定期强制回收,释放物理内存。垃圾回收效率总是Go版本升级的核心问题。阈值或强制回收如下图 1:并行标记如下图2:串行或与用户逻辑并发执行如下图3:如阈值过大,可能会导致长时间无法触发垃圾回收。因此,每 2 分钟强制检查回收是非常必要的。每 5 分钟,释放堆中长时间闲置块的物理内存。 此外,在类 UNIX 系统,通过建议操作系统内核解除内存映射的方式释放物理内存,但不回收虚拟内存。再次使用时,因缺页异常,由内核重新配物理内存。本文来自:CSDN博客感谢作者:notbaron查看原文:12.蛤蟆笔记go语言——垃圾回收 查看原文:http://www.zoues.com/2016/10/20/golang%e8%af%ad%e8%a8%80-%...阅读全文

博文 2016-10-20 07:00:02 u012798391

Go 内存管理 -- 内存分配 一

前言 go作为一个比较新晚(新)的语言,自然借鉴前辈们的优点,比如说语言本身负责内存管理、对协程和高并发的高优支持、简单高效的语法等。本篇及后续的几篇要讲的就是还没提到的比较复杂的内存管理。 学习内存管理(分配&回收)前,如果有JVM的内存管理的基础,会变得非常简单,如果是第一次接触内存管理,在看完Go的内存管理后可以去看看JVM的,对比着学习比较容易理解。 go的内存管理思路是基于google 的tcmalloc(thread-caching-malloc)实现的,常见的内存分配器还有ptmalloc、jemalloc,但是tcmalloc的性能更高,尤其是高并发场景下。 关于tcmalloc tcmalloc的分配的内存主要来源于:全局缓存堆、进程私有缓存,小容量的内存申请使用私有缓存,...阅读全文

博文 2019-07-15 22:32:42 邹志全

Go内存分配那些事,就这么简单!

文链接:mp.weixin.qq.com/s/3gGbJaeuv… 新老朋友好久不见,我是大彬,这篇文章准备了很久,不是在拖延,而是中间做了一些其他事情,耽搁了一些。 这篇文章主要介绍Go内存分配和Go内存管理,会轻微涉及内存申请和释放,以及Go垃圾回收。 从非常宏观的角度看,Go的内存管理就是下图这个样子,我们今天主要关注其中标红的部分。 友情提醒: 文章有点长,建议先收藏,后阅读,绝对是学习内存管理的好资料。 本文基于go1.11.2,不同版本Go的内存管理可能存在差别,比如1.9与1.11的mheap定义就是差别比较大的,后续看源码的时候,请注意你的go版本,但无论你用哪个go版本,这都是一个优秀的资料,因为内存管理的思想和框架始终未变。 Go这门语言抛弃了C/C++中的开发者管理内存...阅读全文

博文 2019-07-07 15:34:27 我是大彬

虚拟机创建工具Libretto-Golang

Libretto 是一个 Golang 库,可在任何云和虚拟机托管平台(如 AWS,Azure,OpenStack,vSphere 或VirtualBox)上创建虚拟机(VM)。 ![image](https://static.oschina.net/uploads/space/2017/0216/103945_SzQJ_2903254.jpg) AWS Azure DigitalOcean Exoscale Google Cloud Platform Openstack (Mirantis) Virtualbox >= 4.3.30 VMware Fusion >= 8.0 VMware Workstation >= 8.0 vSphere >...阅读全文

开源项目 2017-02-17 03:56:14 apcera

golang 代码埋点试性能监控

背景 在gateway系统开发的过程中,因为毕竟是面向公网的,所以需要全方位的监控,比如QPS,失败次数,成功次数,这类代码级的监控,参考transfer的源码,其在代码中埋了一部分监测点,然后通过API暴露出来,交给另外的组件去采集,这样略显麻烦 数据类型 目前常用的度量类型: Gauge: Gauge是最简单的度量类型,存储了一个double类型的值,所以一般用它记录系统的一些即时值,比如最近的一次的内存占用或者是系统CPU百分比。 Counter: Counter顾名思义是计数器的意思,用于存储一个64位长计数器,由应用系统的代码逻辑控制Counter的自增或自减。而且该计数器是支持明细计数的,Counter保持一个总的计数,并且保持一个子项的计数明细数组。 计数器可以用来记录当前系统...阅读全文

博文 2019-03-14 15:34:48 皮皮虾_132a

【技术系列】浅谈GPU虚拟化技术(第一章)

摘要: GPU深度好文系列,阿里云技术专家分享 **第一章 GPU虚拟化发展史** GPU的虚拟化发展历程事实上与公有云市场和云计算应用场景的普及息息相关。如果在10年前谈起云计算,大部分人的反应是“不知所云“。但是随着云计算场景的普及,概念的深入人心,慢慢地大家都对云计算有一个较清晰的概念和实例化的理解。自然,随着应用场景从单一依赖CPU的计算单元的应用扩展到多种体系架构,异构计算场景的应用上来后,对GPU,FPGA,TPU等专业计算芯片也提出了虚拟化和上云的强烈要求。尤其是最近几年机器学习、深度学习等领域的快速发展,催生了异构计算场景搬迁上云的高潮。 那么这个异构计算应用场景的市场规模有多大呢?异构计算作为机器学习人工智能的计算载体,先来看看人工智能前景如何?(引用出...阅读全文

Docker - 小李飞刀般的虚拟化解决方案

Docker - 小李飞刀般的虚拟化解决方案 Docker 介绍 Docker 是一个可以让开发者、系统管理员创建、分发并最终运行应用程序的开放平台。它使用 Google 的 Go 语言开发,并在 Github 上开源。作为轻量级的操作系统虚拟化解决方案,Docker 现在受到了越来越多的关注和使用,特别是RedHat,Ubuntu以及Google 都宣布官方支持 Docker,更让 Docker 走上了快车道,吸引了非常多的开发者。 Docker 和 传统的虚拟机解决方案相比有哪些优势呢,可以看看官网的一张示意图: Docker 是基于 LXC 的,使用操作系统上的容器,所以提高了操作系统的复用程度,甚至可以在一台物理机上部署成百上千个 Docker 容器。当然,由于运行依赖于操作系统,D...阅读全文

博文 2017-02-10 13:43:46 Xiaohui Wang

【译】CPU 高速缓存原理和应用

博客原文: 【译】CPU 高速缓存原理和应用 曾三次获得 F1 世界冠军的杰基•斯图尔特 (Jackie Stewart) 表示,了解汽车的工作原理让他成为了一名更好的驾驶员。 "你并不需要先成为一个工程师才能去做一个赛车手,但是你得有一种机械同感 (Mechanical Sympathy)" Martin Thompson (高性能消息库 LMAX Disruptor 的设计者) 就一直都把机械同感的理念应用到编程中。简而言之,了解计算机底层硬件能让我们作为一个更优秀的开发者去设计算法、数据结构等等。 在这篇文章中,我们会深入钻研计算机处理器然后看看了解它的一些概念是如何帮助我们去优化程序的。 基本原理 现代计算机处理器是基于一种叫对称多处理 (symmetric multiprocess...阅读全文

博文 2020-05-29 18:32:43 panjf2000