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. urllib的实现---timeout,获取http响应码,重定向,proxy的设置

    1.Timeout设置超时 只能修改Socket设置全局Timeout #! /usr/bin/env python3 import socket import urllib.request # ti ...

  2. luogu1196 银河英雄传说 (并查集)

    并查集,不仅记fa,还记与fa的距离,还记根对应的尾节点 路径压缩的时候更新那个距离就行了 #include<bits/stdc++.h> #define pa pair<int,i ...

  3. hasattr

    语法: hasattr(object,name) 检测类对象是否具有该name属性或方法

  4. 牛客练习赛43 Tachibana Kanade Loves Review C(最小生成树Kruskal)

    链接:https://ac.nowcoder.com/acm/contest/548/C来源:牛客网 题目描述 立华奏是一个刚刚开始学习 OI 的萌新. 最近,实力强大的 QingyuQingyu 当 ...

  5. 牛客寒假算法基础集训营3处女座和小姐姐(三) (数位dp)

    链接:https://ac.nowcoder.com/acm/contest/329/G来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言52428 ...

  6. Spring -- <mvc:annotation-driven />

    <mvc:annotation-driven /> 会自动注册:RequestMappingHandlerMapping .RequestMappingHandlerAdapter 与Ex ...

  7. window无法启动mongodb服务:系统找不到指定的文件错误的解决方法

    原文:http://www.phperz.com/article/15/0530/131534.html 错误描述 错误2:系统找不到指定文件 思考过程 昨天做测试的时候,先后安装了两次MongoDB ...

  8. 代码合并工具Beyond Compare的使用技巧

    使用技巧 文件合并 过滤 https://edi.wang/post/2013/2/17/using-beyond-compare 文件夹比较 http://www.beyondcompare.cc/ ...

  9. poj 2229 Sumsets(记录结果再利用的DP)

    传送门 https://www.cnblogs.com/violet-acmer/p/9852294.html 题意: 将一个数N分解为2的幂之和共有几种分法? 题解: 定义dp[ i ]为数 i 的 ...

  10. 安装webpack-dev-server始终不成功

    先安装了webpack,后来安装webpack-dev-server会一直出现这个问题,我把webpack提示的1.0.0 , 2.0.0 ,3.0.0全都在全局装了一遍都没用,还是会出现这个问题.最 ...