Gox语言自动转换Excel文件为CSV格式-GX35.2

本文继续介绍Gox语言中如何利用内置的github.com/360EntSecGroup-Skylar/excelize包来实现Excel文件的操作,例子中演示的是如何将Excel文件自动转换为CSV格式的文件。CSV文件其实是一种固定格式的纯文本文件,比较方便一般的计算机程序化处理。例子代码可以对含有单表或者多表的Excel文件进行转换,多表的情况下会将各个表分别保存为按数字排序的多个CSV文件,这比在Excel文件中手动另存为CSV文件时要方便得多。另外,稍加改进后,还可以批量进行Excel...阅读全文

简书 2020-07-11 18:32:46 陆满庭

goroutine究竟占用多少内存(来自掘金)

goroutine究竟占用多少内存? 引言 相信接触过 Go 语言的同学,都应该有听说过 Go 协程,也就是 goroutine 的概念,对于 goroutine 的介绍,大部分文章中提到的都是,相较于线程,goroutine 十分轻量,相同大小的内存,可以运行更多的 goroutine。但是很少有文章解释 goroutine 是如何做到占用更少资源的,单个 goroutine 究竟占用多少内存?本文将针对这些问题进行解释。 一些基本结论 goroutine 所占用的内存,均在栈中进行管理 go...阅读全文

简书 2020-07-11 18:32:46 哆啦在这A梦在哪

golang-pprof-排查内存泄漏(一)

golang 内存泄漏的排查记录一 一、发现问题 首先通过监控工具查看到某个项目的机器内存在部署之后总是不断上涨,但是用户量并不多,很明显是内存泄漏的问题。 监控 二、如何解决 项目中引入了以下代码,自然可以通过 pprof 工具进行分析。 package main import ( "net/http" _"net/http/pprof" ) func init() { go func() { http.ListenAndServe(":8000",nil) }() } 三、解决步骤 解决问题...阅读全文

简书 2020-07-11 18:32:46 xmge

01-初识golang

1 为什么要学习golang 一般一个新的语言出现是为了解决市面上现有语言的缺陷。或者说在开发效率,执行效率,资源占用问题上做一个新的平衡。比如一个语言,既要开发效率高,执行效率高,资源占用少,目前来看这是不可能的问题,只能在它们之间做一个平衡,所以这时候golang就出现了,它有快速开发(相较于c++),高效执行(相比于python),资源占用少(相比于java)的特点。如果你觉得C语言、C++太难了,python执行效率太低,而且作为第一语言不好找工作,java又太重了,那你就来学习gola...阅读全文

简书 2020-07-11 18:32:44 一如既往wfqwfq

redis-server和client连接建立

redis版本 redis6.0+ socket连接建立的要素 网络连接的建立离不开socket,socket在不同操作系统下有不同的接口,这里以epoll为例。 socket连接建立关键点1:在指定的端口创建监听套接字,并且将该套接字通过epoll_ctl加入epoll_fd中。 关键点2:定时通过epoll_wait查看是否有连接请求过来,如果有则调用accpet创建client的套接字并且将其加入进程的套接字管理的数据结构中,以便后续查找和管理套接字。 关键点3:上层业务处理数据异常时,主...阅读全文

简书 2020-07-11 18:32:42 不争_900c

[hyperledger fabric教程]ubuntu 安装 fabric并运行

首先这篇文章的目的是教会大家如何在ubuntu系统上安装hyperledger fabric并运行起来,因为目前网络上所有的教程都是之前的fabric版本,然而现在的fabric版本相较于之前版本已经改变了很多,如果使用之前的方法来安装fabric是不能成功运行的。 1.首先得有一台系统为ubuntu的服务器(centos其实操作原理差不多),推荐使用虚拟机安装ubuntu系统。 2.更换apt的下载源,官方下载源很慢,我们需要更换到国内的镜像站 2.1 进入 /etc/apt 目录 cd /e...阅读全文

Segmentfault 2020-07-16 13:32:33 emperor_han

「Go」Golang中的字符串处理

转自https://my.oschina.net/u/3625745/blog/3007674 以便查阅 Count(s string, str string) int 计算字符串str在s中的非重叠个数。如果str为空串则返回s中的字符(非字节)个数+1。 Index(s string, str string) int 返回子串str在字符串s中第一次出现的位置。如果找不到则返回-1;如果str为空,则返回0。 LastIndex(s string, str string) int 返回子串s...阅读全文

简书 2020-07-11 02:33:17 叨码

托管Powergate实例-企业能访问托管的Filecoin和IPFS资源

今天,我们很高兴宣布基于Filecoin的Textile的一个重要里程碑:托管 Powergate 实例。01 Powergate托管帐户是Textile的Filecoin服务三部曲中的第三部分,包括我们的自助式Powergate部署,Textile Bucket对Filecoin存储的支持以及现在托管的Powergate基础结构。(https://blog.textile.io/buckets-diffing-syncing-archiving/#want-your-bucket-in-fil...阅读全文

简书 2020-07-11 02:33:16 IPFS星脉矿机

Golang 增量覆盖率统计

实践项目:趣头条-实惠喵后端 单元/功能 测试增量覆盖率统计 1.通过测试工具获取到全量覆盖率统计信息,输出到c.out(使用方法见 Golang 全量覆盖率统计),拿单元测试举例: go test -coverprofile=c.out c.out内容格式如下: image.png 2.使用工具gocov和gocov-xml将覆盖率输出转换成xml格式的报告: gocov convert c.out | gocov-xml > coverage.xml gocov 安装/说明:https://...阅读全文

简书 2020-07-11 02:33:15 夏国栋

golang内存分配学习记录

Go内存分配器的设计与实现 函数调用的参数,返回值,局部变量基本都分配在栈上。 内存管理一般包含三个不同的组件,分别是用户程序,分配器和收集器。 一般有两种内存分配方法,一种是线性分配器,另一种是空闲链表分配器。 线性分配器 线性分配(Bump Allocator)是一种高效的内存分配方法。当我们在编程语言中使用线性分配器,我们只需要在内存中维护一个指向内存特定位置的指针,当用户程序申请内存时,分配器只需要检查剩余的空闲内存、返回分配的内存区域并修改指针在内存中的位置,即标记已经被使用了的内存。...阅读全文

简书 2020-07-11 02:33:14 yellowone

golang之context详解

为什么需要context 在go服务器中,对于每个请求的request都是在单独的goroutine中进行的,处理一个request也可能设计多个goroutine之间的交互, 使用context可以使开发者方便的在这些goroutine里传递request相关的数据、取消goroutine的signal或截止日期 在并发程序中,由于超时、取消操作或者一些异常情况,往往需要进行抢占操作或者中断后续操作。熟悉channel的朋友应该都见过使用done channel来处理此类问题。比如以下这个例子...阅读全文

简书 2020-07-11 02:33:11 stevenyeahnet

是什么让我放弃了Restful API?了解清楚后我全面拥抱GraphQL!

原文:https://www.toutiao.com/i6833818331884028419 作者:IT研究僧大师兄 背景 REST作为一种现代网络应用非常流行的软件架构风格,自从Roy Fielding博士在2000年他的博士论文中提出来到现在已经有了20年的历史。它的简单易用性,可扩展性,伸缩性受到广大Web开发者的喜爱。 image REST 的 API 配合JSON格式的数据交换,使得前后端分离、数据交互变得非常容易,而且也已经成为了目前Web领域最受欢迎的软件架构设计模式。 imag...阅读全文

简书 2020-07-11 02:33:11 码农小光

rabbitMQ

作者太懒了,总觉得做出来就会了,看过也会了,没有做笔记,后面找时间补上 RabbitMQ基础知识讲解RabbitMQ的安装RabbitMQ工作模式 - 发送端和接收端封装 RabbitMQ - 五种工作模式 - 简单模式和work工作模式RabbitMQ - 五种工作模式 - 订阅模式RabbitMQ - 五种工作模式 - 路由模式RabbitMQ - 五种工作模式 - 主题模式 RabbitMQ - 消息持久化和手动应答RabbitMQ - 死信队列阅读全文

Segmentfault 2020-07-12 15:32:37 特伦姝

Gox语言中使用内存虚拟文件系统提升IO处理速度-GX43.1

Gox语言中,1.06a版本以上,可以利用内置的github.com/topxeq/afero包来将内存中虚拟出一个文件系统。这样,如果内存足够大,完全可以利用它来提升一些文件IO处理的效率。 该包实现的文件系统操作和Go语言(Golang)的os标准包中的基本保持一致,并提供了一些附加方法以便提高代码效率。 下面是内存虚拟文件系统的一些常规操作,包括新建文件系统、新建或删除文件、复制文件(包括在虚拟文件系统和真实文件系统之间复制)、创建目录和子目录等。 // 创建一个内存文件系统对象 fs =...阅读全文

简书 2020-07-10 11:33:38 陆满庭

使用 SNYK 檢查開源軟件依賴中的漏洞

如今基本任何一個 IT Project 都離不開開源社區中的軟件依賴包( Dependencies ), 在如今越來越注重資訊安全的年代,隨之而來的問題是,誰會能夠保證這些依賴包的安全性?如何監控這些開源軟件包的漏洞?人肉留意最新的漏洞信息,比如關注 CVE 網站之餘,有沒有更加自動化的方法? synk 答案當然是「有」。 Snyk Snyk 是一家美國的安全公司,致力於監控開源軟件包中的漏洞。Snyk 以其龐大的漏洞資料庫為基礎(由以色列和倫敦的資安研究專家團隊負責維護該資料庫),持續的監控開...阅读全文

简书 2020-07-10 11:33:37 FrankLZ

grpc同时提供grpc和http接口—h2c和grpc-gateway等的使用

本文来自于网上众多大神的博客的集合,加入了自己的理解,主要目的是把grpc和http的关系做一个全面的梳理总结。 0. 写在前面的一些说明   本文默认你已经学习其他博客,知道怎么写一个简单的grpc demo,所以编译proto文件之类的都略过不提。如果你还没有,可以先看这个。 本文使用的proto文件: syntax = "proto3"; package service; option go_package = ".;service"; import "google/api/annotat...阅读全文

简书 2020-07-10 11:33:02 猫仙草