gorun是一个工具,可以在Go程序的源代码中放置“爆炸线”来运行它,或者明确运行这样的源代码文件。 它的创建旨在试图让Go更加吸引那些习惯于Python和类似语言的人们,他们使用源代码进行最明显的操作。

项目地址:https://github.com/erning/gorun

一、安装环境:

系统:Ubuntu 16.04.3 LTS

Go 版本:go1.9.1

如果没有安装好go 环境,请先安装go环境

sudo add-apt-repository ppa:gophers/go
sudo apt-get update
sudo apt-get install golang

使用git 安装gorun

go get github.com/erning/gorun

安装结果:

./gorun
usage: gorun <source file> [...]

做个软连接,可以全局使用

sudo ln -s /home/www/golang/gopath/bin/linux_386/gorun /usr/bin/gorun

编写脚本 gorun_script.go

cat gorun_script.go
#!/usr/bin/env gorun package main func main() {
println("Hello gorun!")
}

赋予指定权限

chmod u+x gorun_script.go

执行该脚本

./gorun_script.go
Hello gorun!

二、性能测试(python比较)

测试文件:hello.go

cat hello.go
package main
import "fmt"
func main() {
fmt.Println("Hello World!")
}

go执行结果

www@TinywanAliYun:~/golang$ time gorun hello.go
Hello World! real 0m0.199s
user 0m0.152s
sys 0m0.020s
www@TinywanAliYun:~/golang$ time gorun hello.go
Hello World! real 0m0.002s
user 0m0.000s
sys 0m0.000s

python执行结果

www@TinywanAliYun:~/golang$ time python -c 'print "Hello world123!"'
Hello world123! real 0m0.010s
user 0m0.008s
sys 0m0.000s
www@TinywanAliYun:~/golang$ time python -c 'print "Hello world123!"'
Hello world123! real 0m0.011s
user 0m0.008s
sys 0m0.004s

php 语言

www@TinywanAliYun:~/golang$ time php hellp.php
Hello World
real 0m0.019s
user 0m0.012s
sys 0m0.004s
www@TinywanAliYun:~/golang$ time php hellp.php
Hello World
real 0m0.020s
user 0m0.004s
sys 0m0.012s

请注意 gorun 第二次运行的速度比第一次快得多。 发生这种情况是因为在第一次编译后使用了该文件的缓存版本。

gorun会在需要时正确重新编译文件。

Github 开源项目(二)gorun (go语言工具)的更多相关文章

  1. 2015-2016最火的Android开源项目--github开源项目集锦(不看你就out了)

    标签: Android开发开源项目最火Android项目github 2015-2016最火的Android开源项目 本文整理与集结了近期github上使用最广泛最火热与最流行的开源项目,想要充电与提 ...

  2. 拥有 GitHub 开源项目的小伙伴,免费申请 JetBrains 全家桶的全流程详解

    工欲善其事,必先利其器.如果您想要学习 Java.PHP.Ruby.Python.JavaScript.Objective-C..NET 中的任何一种开发技术,国际知名且屡获殊荣的 JetBrains ...

  3. Android Hawk数据库 github开源项目

    Android Hawk数据库 github开源项目 Hawk 是一个很便捷的数据库  . 操作数据库仅仅需一行代码 , 能存不论什么数据类型 . github 地址: https://github. ...

  4. iOS:开发常用GitHub开源项目(持续更新)

    IOS开发常用GitHub开源项目(持续更新) 数据类 开源库 作者 简介 AFNetworking Mattt 网络请求库 ASIHTTPRequest pokeb 网络请求库 Alamofire ...

  5. 使用 GitHub 开源项目申请 IntelliJ License

    一.写在前面 这次要介绍的是通过使用 GitHub 上的开源项目来申请 IntelliJ Pycharm 的正版 License,只需在 GitHub 上准备一个维护超过3个月的开源项目,就能免费使用 ...

  6. 如何参与一个 GitHub 开源项目?

    最近一年开源项目特别的热,很多技术大会或论坛都以开源项目作为主题进行探讨,可见这是一种趋势.而Github作为开源项目的著名托管地,可谓无 人不知,越来越多的个人和公司纷纷加入到Github的大家族里 ...

  7. Android笔记——导入Github开源项目CircleRefreshLayout

    百度n久都找不到android studio导入第三方类库的正确方法,纠结睡不着 ,最后终于蒙到了方法,原来想太多了  ---------------------------------------- ...

  8. 如何参与一个GitHub开源项目

    Github作为开源项目的著名托管地,可谓无人不知,越来越多的个人和公司纷纷加入到Github的大家族里来,为开源尽一份绵薄之力.对于个人来讲,你把自己的项目托管到Github上并不表示你参与了Git ...

  9. 开源项目福利-github开源项目免费使用Azure PipeLine

    微软收购Github后,很多人猜想微软可能会砍掉VSTS,然而事实VSTS并没有砍掉,关于Azure Devops的详细信息可以查看 这篇博客,如果想查看原文也可以从链接里提供的原始地址里查看. 今天 ...

  10. 基于RBAC模型的权限系统设计(Github开源项目)

    RBAC(基于角色的访问控制):英文名称Rose base Access Controller.本博客介绍这种模型的权限系统设计.取消了用户和权限的直接关联,改为通过用户关联角色.角色关联权限的方法来 ...

随机推荐

  1. npm 淘宝源

    --------- npm: 淘宝源设置:npm config set registry https://registry.npm.taobao.org

  2. power designer 一般常用快捷键(转)

    一般快捷键 快捷键 说明 F4 打开检查模型窗口,检查模型 F5 如果图窗口内的图改变过大小,恢复为原有大小即正常大小 F6 放大图窗口内的图 F7 缩小图窗口内的图 F8 在图窗口内中查看全部图内容 ...

  3. 「CodeForces - 50C 」Happy Farm 5 (几何)

    BUPT 2017 summer training (16) #2B 题意 有一些二维直角坐标系上的整数坐标的点,找出严格包含这些点的只能八个方向走出来步数最少的路径,输出最少步数. 题解 这题要求严 ...

  4. expect 自动化控制命令

    expect 的核心是 spawn expect send set spawn 调用要执行的命令expect 等待命令提示信息的出现,也就是捕捉用户输入的提示:send 发送需要交互的值,替代了用户手 ...

  5. VSIX 插件右键菜单(2)

    编译项目然后发布 // 获取当前右击的活动项目 EnvDTE.Project activeProj = ProjectHelpers.GetActiveProject(); // 获取 编译选项 Re ...

  6. Nginx代理MysqlCluster集群

    -------Nginx代理MysqlCluster 公司有一个公网ip,有公网ip(222.222.222.222)那台服务器上装的nginx,mysql装在公司另外一台服务器上假设ip为192.1 ...

  7. BZOJ2244 拦截导弹

    此题最早看到是在我还什么都不会的去年的暑期集训,是V8讲的DP专题,我当时还跑去问这概率怎么做.这道题要求的是二维最长不上升子序列,加上位置一维就成了三维偏序问题,也就是套用CDQ分治,对位置排序,然 ...

  8. 用foobar进行码率转换 适用与sacd-r转成低码率

    之前下载了不少高清音频,有黑胶转录的也有母带文件.这些高清音频大都是24bit,采样率96khz或者88.2khz或者更高.而我想将部分精品专辑刻录成cd.首先我需要将这些文件转换为16bit,44. ...

  9. C# Winform窗体基础属性

    窗口样式: Inco:改图标样式: MaxmizeBox:true:显示右上角最大化按钮: MinmizeBox:true:显示右上角最小化按钮: ShowInco:true:显示左上角小图标: Sh ...

  10. 洛谷P3168 任务查询系统

    题意:有n个任务,第i个的存在时间是li~ri,有个权值.求t时刻第k大的权值. 这毒瘤...本来是前缀和 -> 主席树,我是树套树...然后光荣TLE. 其实很裸.一开始我写的是每个位置维护一 ...