Microarchitecture: Pipeline of Intel Core CPUs
skyLake in wikichip
简化图 in uiCA
名称解释
- Scheduler
- address-generation unit (AGU),
多端口发射模型
每个端口的函数可能一个周期执行不完。但是是形成了流水线的。可以保证每个周期accept一个新uops
需要进一步的研究学习
暂无
遇到的问题
暂无
开题缘由、总结、反思、吐槽~~
参考文献
无
每个端口的函数可能一个周期执行不完。但是是形成了流水线的。可以保证每个周期accept一个新uops
暂无
暂无
无
寄存器重命名是乱序执行Tomasulo算法的一部分
寄存器重命名可以实现: 1. 部分mov消除 2. NOPs 3. zero (one) idioms 对于这些指令,无序发射到scheduler。可以直接在reorder buffer写入结果。
Zero (one) idioms 是不管原寄存器src值是什么,结果/目的寄存器dst一直/一定是0 (1)的一类指令。比如:XOR一个寄存器和自己。
所以各部分平均执行次数为
指令个数 | UOPS_ISSUED | UOPS_EXECUTED | UOPS_RETIRED |
---|---|---|---|
3 | 2 | 1 | 2 |
有些架构可能不支持srcImm0-dstReg的指令的Zero idioms
1. 由于是在寄存器重命名阶段(Rename)时实现的
1. 所以不需要发射到port执行单元执行,占用硬件资源。也没有延迟
2. 但是需要划分前面部分的decode的带宽,和ROB(reorder buffer)的资源
所以各部分平均执行次数为
指令个数 | UOPS_ISSUED | UOPS_EXECUTED | UOPS_RETIRED |
---|---|---|---|
5 | 4 | 3 | 4 |
一般和0的立即数作用有关
第二条指令在IvyBridge也不会消除。这同样是编译器的工作但是llvm-mca通过ZeroRegister的实现,可以消除。
类似的还有
一般也不会消除。这同样是编译器的工作暂无
暂无
https://randomascii.wordpress.com/2012/12/29/the-surprising-subtleties-of-zeroing-a-register/
https://easyperf.net/blog/2018/04/22/What-optimizations-you-can-expect-from-CPU
https://zh.m.wikipedia.org/zh-hans/%E5%AF%84%E5%AD%98%E5%99%A8%E9%87%8D%E5%91%BD%E5%90%8D
public/*.html
根据公开的仓库,hugo的html文件会产生在gh-pages
分支下
name: build
on:
push:
branches: [master]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
#submodules: true # Fetch Hugo themes (true OR recursive)
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod
- name: Setup Hugo
uses: peaceiris/actions-hugo@v2
with:
hugo-version: 'latest'
#extended: true
- name: Build
run: hugo --minify
- name: Deploy
uses: peaceiris/actions-gh-pages@v3
if: github.ref == 'refs/heads/master'
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./public
接收端转发到内网的机器上(通过修改vim /etc/nginx/sites-enabled/default
)
server{
location /_webhook/ {
proxy_pass http://snode5.swangeese.fun;
proxy_set_header Host $http_host;
}
}
systemctl reload nginx
Nginx中location的作用是根据Url来决定怎么处理用户请求(转发请求给其他服务器处理或者查找本地文件进行处理)。location支持正则表达式,配置十分灵活。我们可以在一个虚拟主机(nginx中的一个server节点)下配置多个location以满足如动静分离,防盗链等需求。
在snode5上nginx也需要转发
暂无
暂无
无
wget https://go.dev/dl/go1.18.3.linux-amd64.tar.gz
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.18.3.linux-amd64.tar.gz
(maybe need sudo)
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.18.3.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
go version
$ cd $HOME/go/src/hello
$ go run main.go #直接运行
Hello, World!!
$ go build # 产生可执行文件
$ ./hello
Hello, World!!
Packages
Go packages are folders that contain one more go files.
Modules
A modules (starting with vgo and go 1.11) is a versioned collection of packages.
go list -m -u all
来检查可以升级的package,
使用go get -u need-upgrade-package
升级后会将新的依赖版本更新到go.mod
也可以使用 go get -u
升级所有依赖
作者:若与 链接:https://www.jianshu.com/p/760c97ff644c 来源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
暂无
暂无
https://devhints.io/go
go modules 是 golang 1.11 新加的特性。现在1.12 已经发布了,是时候用起来了。Modules官方定义为:
模块是相关Go包的集合。modules是源代码交换和版本控制的单元。 go命令直接支持使用modules,包括记录和解析对其他模块的依赖性。modules替换旧的基于GOPATH的方法来指定在给定构建中使用哪些源文件。
go.mod
文件
go.mod文件一旦创建后,它的内容将会被go toolchain全面掌控。
go toolchain会在各类命令执行时,比如go get、go build、go mod等修改和维护go.mod文件。
go.mod 提供了module, require、replace和exclude 四个命令
module 语句指定包的名字(路径) require 语句指定的依赖项模块 replace 语句可以替换依赖项模块 exclude 语句可以忽略依赖项模块
对于main.go
里的import
package main
import (
"crypto/hmac"
"crypto/sha1"
"encoding/hex"
"encoding/json"
"fmt"
"io/ioutil"
"log"
"net/http"
"os"
"os/exec"
"strings"
)
……
go run main.go
运行代码会发现 go mod
会自动查找依赖自动下载,并修改go.mod
(安装 package 的原則是先拉最新的 release tag,若无tag则拉最新的commit)
结合github很简单实现
暂无
暂无
https://www.jianshu.com/p/760c97ff644c
第一种,指定变量类型,如果没有初始化,则变量默认为零值。
//特殊
var a *int
var a []int
var a map[string] int
var a chan int
var a func(string) int
var a error // error 是接口
第二种,根据值自行判定变量类型。
第三种,使用声明符号:=
但是如果变量已经使用 var 声明过了,再使用 := 声明变量,就产生编译错误,格式:
Go 语言支持并发,我们只需要通过 go 关键字来开启 goroutine 即可。
goroutine 是轻量级线程,goroutine 的调度是由 Golang 运行时进行管理的。
goroutine 语法格式:go 函数名( 参数列表 )
Go 允许使用 go 语句开启一个新的运行期线程, 即 goroutine,以一个不同的、新创建的 goroutine 来执行一个函数。 同一个程序中的所有 goroutine 共享同一个地址空间。
通道可用于两个 goroutine 之间通过传递一个指定类型的值来同步运行和通讯。操作符 <- 用于指定通道的方向,发送或接收。如果未指定方向,则为双向通道。
声明一个通道很简单,我们使用chan关键字即可,通道在使用前必须先创建:
func countGoodRectangles(rectangles [][]int) int {
cnt, maxLen := 0, 0
for _, rectangle := range rectangles {
k := int(math.Min(float64(rectangle[0]), float64(rectangle[1])))
if k == maxLen {
cnt++
}
if k > maxLen {
maxLen, cnt = k, 1
}
}
return cnt
}
https://github.com/swangeese/acsa-web/tree/webhook
暂无
暂无
https://www.runoob.com/go/go-concurrent.html
在初步接触了视频传输编码之后,我开始好奇Streaming采用的哪种视频编码呢?
详见 Streaming Protocol一文
C:\Windows\System32\mstsc.exe
这个地址,将mstsc.exe添加进去,mstsc.exe就是你的桌面,等会串流,可以用手机直接操控你的电脑桌面。https://www.bilibili.com/read/cv10239020
netsh advfirewall firewall add rule name="GameStream UDP" dir=in protocol=udp localport=5353,47995,47998-48010 action=allow
netsh advfirewall firewall add rule name="GameStream TCP" dir=in protocol=tcp localport=47984,47989,47995,48010 action=allow
还是不行,猜测是
但是这个是wifi6 11ax
尝试安装Internet-Hosting-Tool,运行有提示失败,建议重装也不行。
任务计划程序
里设置, 设置开机启动moonlightNVNetStart
任务"C:\Program Files\NVIDIA Corporation\NvContainer\nvcontainer.exe"
-s NvContainerNetworkService -f "C:\ProgramData\NVIDIA\NvContainerNetworkService.log" -l 3 -d "C:\Program Files\NVIDIA Corporation\NvContainer\plugins\NetworkService" -r -p 30000 -st "C:\Program Files\NVIDIA Corporation\NvContainer\NvContainerTelemetryApi.dll"
对于实体键盘可以修改映射, 但是滚轮就不好用了。
与其这样不如换个思路,添加手柄,看其能不能支持滚轮和ESC。初步尝试,滚轮可以只是灵敏度有点低。AntiMicroX完美解决了这个问题,配置文件路径 I:\BT\GAME\x18Game\moonlightAntiMicroX.gamecontroller.amgp
体验十分丝滑,任意程序也可以添加。支持PS4手柄(长按PS和share键配对)
share时一定要登录steam
应用串流至少将某应用窗口转发,所以只需要停止流式传输,然后调整分辨率就行了。
@powercfg -h off
高画质60帧 1.6MB/s
最低画质30帧 500KB/s
暂无
暂无
无
这个api是怎么来的呢?
lesson_info_url = "https://www.eeo.cn/saasajax/webcast.ajax.php?action=getLessonLiveInfo"
感谢大佬回答
输入
返回数据
PHP是后端语言,前端是无法查看的,前端看到的是最终运算之后的结果,PHP源代码是无法查看的。
将 header
改一下就能用了,注意不要开代理
from requests import Session
session = Session()
lesson_info_url = "https://www.eeo.cn/saasajax/webcast.ajax.php?action=getLessonLiveInfo"
headers = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'zh-CN,zh;q=0.9,zh-TW;q=0.8,en;q=0.7',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'
}
data = {
'lessonKey': lessonKey
}
resp = session.post(url=lesson_info_url, headers=headers, data=data)
text = resp.json()
CourseName = text['data']['courseName']
from urllib import request
base_url = 'https://f.us.sinaimg.cn/001KhC86lx07laEy0PtC01040200y8vC0k010.mp4?label=mp4_hd&template=640x360.28&Expires=1528689591&ssig=qhWun5Mago&KID=unistore,video'
#下载进度函数
def report(a,b,c):
'''
a:已经下载的数据块
b:数据块的大小
c:远程文件的大小
'''
per = 100.0 * a * b / c
if per > 100:
per = 100
if per % 1 == 1:
print ('%.2f%%' % per)
#使用下载函数下载视频并调用进度函数输出下载进度
request.urlretrieve(url=base_url,filename='weibo/1.mp4',reporthook=report,data=None)
小白尝试 扒学校的资源网址(http://wlkt.ustc.edu.cn/)
正则匹配video/detail
出视频网址后缀
正则匹配mp4.php
得到视频位置http://wlkt.ustc.edu.cn/mp4.php?file=HXMEV11IQNB2ZXPM6BVWY77AJ2HZTM4U
但是不打开网站没有php返回,网页只能得到。
可通过下面API返回需要的, 可以见github代码
opener = urllib.request.FancyURLopener({})
f = opener.open(taskUrl)
content = f.read()
#1.得到beautifulsoup对象
soup = BeautifulSoup(content,'html.parser')
#通过指定的 属性获取对象
ic(soup.find(id=glv._get(taskType)["data1id"]).attrs['value'])#单个对象
暂无
暂无
科大BB clashIn 想爬录像。但是网上的两个都用不了了,想自学,改一下
https://github.com/aoxy/ClassIn-Video-Download
https://github.com/JiangGua/classin-downloader
https://blog.csdn.net/qq_37275405/article/details/80780925
我跪了,看来垃圾电脑玩不来,官方光明山脉demo要64GB内存和200GB储存。而且打开渲染超级慢
暂无
暂无
无
肯定有人问,这不是计算机博客吗?哦!诶!我就不,我想怎么写就怎么写😋