背景本文旨在记录解决问题的办法及思路。需求是识别视频中的话语转为文字,此服务是调用的百度的websocket服务,其要求是:发送一个text类型的帧,用于登录。后续发送binary类型的音频数据。开发语言:Golang websocket库:github.com/gorilla/websocketdemo核心流程就四步:连接服务器,发送text类型的登录消息,写音频数据,接收识别内容package
转载 2024-09-09 17:48:18
72阅读
导读:在开发 golang 程序过程中,go pprof 可以对我们所写的算法甚至整个应用程序做性能分析,帮助我们快速定位效率低或者资源消耗多的地方。Go 提供了 pprof 以及 trace 工具,本文分别介绍这两个工具的简要用法,希望大家能够快速了解以及快速入门 Go 的性能调优。作者 | 谢久阳(昕希)先来一段演练在给大家介绍枯燥的基础知识之前,先来看看一个简单的例子,这个例子简单粗暴,可以
转载 2024-05-22 08:54:12
51阅读
Golang GC的背景golang是基于garbage collection的语言,这是它的设计原则。作为一个有垃圾回收器的语言,gc与程序交互时候的效率会影响到整个程序的运行效率。通常程序本身的内存管理会影响gc和程序之间的效率,甚至造成性能瓶颈。常见的 GC 模式引用计数(reference counting)每个对象维护一个引用计数器,当引用该对象的对象被销毁或者更新的时候,被引用对象的引
转载 2024-09-29 07:23:18
41阅读
Google 开发的 Golang 自 2009 年推出,已经日趋成为各大公司开发后端服务使用的语言,有名的基于 Golang 的开源项目有Docker、Kubernetes等。当使用 Golang 开发服务后端时,难免产生性能问题,如内存泄漏、Goroutine 卡死等,Golang 是一个对性能要求很高的语言,因此语言中自带的 PProf 工具成为我们检测 Golang
参考来源:30+张图讲解:Golang调度器GMP原理与调度全分析 (qq.com)0. 前提知识对比分析进程、线程与协程 (htmonster.xyz)a.协程的M:N关系为什么是M:N,而不是1:1或者N:1?N:1关系(一个内核线程thread 管理着多个用户协程co-routine) 优点:切换开销小缺点:一个挂了就全挂了,一锅端1:1 关系 (一个内核线程thread 管理着一个用
转载 2024-07-10 15:51:38
87阅读
一:直播简介    在线教育,娱乐直播等近几年已是遍地开花,其中核心脱离不了低延时音视频技术。我们抛开互动技术不谈,来了解一下视频直播技术。   采集: Windows(dshow,dsound), ios,mac(AVFoundation,AVCaptureSesssion), android(Camera,AudioRecord),Linux(v4l2)&nbsp
思路golang 支持编译成c shared library, 也就是系统中常见的.so(windows下是dll)后缀的动态链接库文件. c++可以调用动态链接库,所以基本思路是golang开发主要功能, c++开发插件包装golang函数,实现中转调用对于类型问题, 为了方便处理, 暴露的golang函数统一接受并返回字符串, 需要传的参数都经过json编码, 返回值亦然. 这里实现了3种调用
转载 2024-02-27 12:06:48
81阅读
前言cgo 提供了 golang 和 C 语言相互调用的机制。几乎所有的编程语言都有C语言的影子,当然golang也不例外。可以看到golang的创始者们与C语言有着密切的联系。下面我们将通过快速入门小例子来掌握cgo的基本用法。最简cgo程序真实的cgo程序一般都比较复杂。不过我们可以通过一个小例子,了解一个最简的cgo程序该是什么样的。构造一个最简cgo程序,首先要忽视一些复杂的
在编程语言中,方法和函数的概念需要搞清楚。函数指的是一个封装的代码块,我们可以直接调用它,并返回结果。而方法其实也是一种函数,只不过方法需要和某个对象绑定。Golang并没有类的概念,不过仍然有方法和接口这些概念。方法方法接收者方法接收者是一个特殊参数,给函数指定了这个参数之后,函数就成为方法了。这个特性有点像Kotlin和C#中的扩展方法,定义了带有接收者的方法之后,接收者这个类型就好像定义了这
文章目录前言一、安装二、使用1.url2.path3.string4.time5.slice6.regexp7.file8.dir9.convert10.commad总结 前言看开源项目的时候看到一个很好用的包com,找了一下没有官方文档,看了一下源码记录一下常用的函数,不用再自己去动手写了,源码地址:https://github.com/Unknwon/com一、安装go get -u git
转载 2023-09-03 20:33:12
134阅读
一、方法简介方法: Go语言里有两种类型的接收者:值接收者和指针接收者。使用值类型接收者定义的方法,在调用的时候,使用的其实是值接收者的一个副本,所以对该值的任何操作,不会影响原来的类型变量。如果我们使用一个指针作为接收者,那么就会其作用了,因为指针接收者传递的是一个指向原值指针的副本,指针的副本,指向的还是原来类型的值,所以修改时,同时也会影响原来类型变量的值。   我们在调用指针接收者方法的时
转载 2023-10-15 15:23:28
318阅读
下面由golang教程栏目给大家介绍使用Golang和lua实现一个值班机器人 ,希望对需要的朋友有所帮助!我们在的项目组呢,有一项工作是,收邮件(很大程度上使用邮件是为了存个底),然后从我们的系统里边查一下相关信息,然后回复个邮件的工作。虽然工作量并不大,但是会把时间切的稀碎。为了拯救我的时间,所以做了一个邮件的值班机器人。让他来顶替我自动回复邮件,考虑到这个东西应该也有不少人会用得到,所以就把
前言下面会介绍Go+Wails最核心的、最重要的部分——前后端数据交互,即后端的Golang和前端的JavaScript如何交换数据。笔者通过分析前文提到的通过wails init生成的默认hello-world项目,和官方Github提供的示例项目todo,了解到具体的做法。todo项目的某些表达方式和新版本可能不同,以新版本wails的模板为准。项目结构下面是todo项目的大体结构:todo
转载 2023-12-10 11:10:18
112阅读
文章目录前言一、Golang为什么分不同的操作系统版本?二、包1.syscall2.runtime解决方案总结 前言Golang语言包下载分为windows,linux和MAC,在平常的使用中并没有什么问题,但是在交叉编译场景的发生,却有不得不注意的问题一、Golang为什么分不同的操作系统版本?在linux中,一切皆文件,内核不同,Linux操作系统使用Linux内核,Windows操作系统使
转载 2024-05-15 10:07:48
63阅读
JSON(JavaScript Object Notation)是一种比XML更轻量级的数据交换格式,在易于人们阅读和编写的同时,也易于程序解析和生成。尽管JSON是JavaScript的一个子集,但JSON采用完全独立于编程语言的文本格式,且表现为key/value的文本描述形式(与GO语言中的map极为相似),这使它成为较理想的、跨平台的、跨语言的数据交换语言。记得初次接触JSON这种数据形式
转载 2024-04-28 13:22:37
16阅读
GC全称Garbage Collection1、常见垃圾回收算法目前比较常见的垃圾回收算法有三种:引用计数:为每个对象维护一个引用计数,当引用该对象的对象销毁时,引用计数 -1,当对象引用计数为 0 时回收该对象。代表语言:Python、PHP、Swift 优点:对象回收快,不会出现内存耗尽或达到某个阈值时才回收。 缺点:不能很好的处理循环引用,而实时维护引用计数也是有损耗的。标记-清除:从根变量
搭建gdb调试go程序前言gdb安装更新brew查看是否存在gdb镜像安装gdbgo build编译gdb执行gdb命令gdb调试问题整理参考前言学会使用gdb进行golang的调试,通过一个简单的go程序进行简单入口程序的源码调用顺序的查看。gdb安装开发环境是Mac,可以使用brew来进行gdb安装更新brewbrew update查看是否存在gdb镜像brew search gdb安装gdb
转载 2024-07-15 15:47:00
119阅读
概要flag包属于golang的标准库。本文主要分为两个方面进行介绍,一是使用方法;二是源码解析。使用方法命令行启动服务时,命令行分为三个部分,不同部分不能相互混淆[cmd] [flags] [args]cmd – 进程名称flags – 定义的参数命令行的传参格式形式解释-f    (只有布尔类型可以使用该格式,等同于 -f=true)-f=x(一个 - 符号,使用
转载 2024-10-20 18:33:46
35阅读
导读最近写一个程序,接口返回的数据是js格式的,需要通过golang来解析js,所以下面这篇文章主要给大家介绍了关于如何在Golang中运行JavaScript的相关资料,需要的朋友可以参考下我们知道,在 Python 里面,如果你要运行一段 JavaScript,你可以使用execJS这种第三方库。那么在 Golang 里面,你想运行 JavaScript 的时候又应该怎么办呢?最近我发现一个使
转载 2023-06-06 10:05:01
417阅读
前言最近在项目中需要使用lua进行扩展,发现github上有一个用golang编写的lua虚拟机,名字叫做gopher-lua.使用后发现还不错,借此分享给大家,下面话不多说了,来一起看看详细的介绍吧。数据类型lua中的数据类型与golang中的数据类型对应关系作者已经在文档中说明,值得注意的是类型是以L开头的,类型的名称是以LT开头的.golang中的数据转换为lua中的数据就必须转换为L开头的
  • 1
  • 2
  • 3
  • 4
  • 5