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. 对如下字符串(234453)[234]{2324}分析它的括号使用是否正确,括号匹配(Java实现)

    我的一种思路是递归: private static String s = "(2344[)]53[234]{2324}"; private static boolean f(int ...

  2. Django的Hello World

    Django安装 yum -y install python #安装python yum -y install epel-release #安装扩展源 yum -y install python-pi ...

  3. js-基本语法

    条件语句 通过条件来控制程序的走向,就需要用到条件语句. 运算符 1.算术运算符: +(加). -(减). (乘). /(除). %(求余) 2.赋值运算符:=. +=. -=. =. /=. %= ...

  4. IP地址等价类测试用例

    下面是一个比较完善的设计方案,这个方案中,首先把IP地址分成有效可用的IP地址和有效但不可用的IP地址两个等价类:其中有效可用的IP地址中包括IP地址的A,B,C三类地址,有效但不可用的IP地址包括D ...

  5. iptables(4)规则编写

    /etc/sysconfig/iptables # Generated by iptables-save v1.4.7 on Tue Mar 20 15:05:33 2018*filter:INPUT ...

  6. 20165223 week2测试补交与总结

    测试题二 题目: 在Ubuntu或Windows命令行中 建如下目录结构 Hello.java的内容见附件package isxxxx; (xxxx替换为你的四位学号) 编译运行Hello.java ...

  7. 使用BlockQueue实现生产者和消费者模式

    数据 package cn.lonecloud.procum; /** * @author lonecloud * @version v1.0 * @date 上午11:00 2018/5/7 */ ...

  8. 什么是Zookeeper?

    https://mp.weixin.qq.com/s?__biz=MzAxOTc0NzExNg==&mid=2665514106&idx=1&sn=e54aae8cf68f5a ...

  9. django引入模板时,部分css文件渲染不成功失灵引入不成功

    今天碰到了一件怪事,下载好的模板,在webstorm中就好好地,但是一引入到pycharm的django项目中就各种失灵,位置错乱. 检查一番,发现该设置的都设置对了啊,而且js文件和css文件还有一 ...

  10. 第三篇-Django建立数据库各表之间的联系(下)

    中篇介绍的是添加,下篇主要介绍查询 通过一个Book表的书的信息查询Publish表中出版社的信息 def addbook(request): # Book.objects.create(name=& ...