小编rol*_*lls的帖子

Windows中的Git克隆比linux慢得多

我一直在从Windows上的github上追逐极慢的克隆速度问题.Linux(kali)没有这个问题.

我正在进行100/40兆位/秒的下行连接.我可以获得接近8mb/s的下载没问题.

我已经将我的电脑直接插入我们的网络插座,没有任何路由器或交换机.

Windows git clone(windows 10,git 2.14.1)以大约150-210kb/s的速度持续下载

我试过另一个Windows 7和Windows 10机器同样的问题.我尝试过具有相同问题的Windows XP VM.我改变了与4G蜂窝的连接,速度是一样的.

我尝试了github镜像测试(https://bitbucket.org/mirror/git.git),结果相同.

我已经尝试过SSH和HTTPS,速度有所改变,但仍然很慢.

我也试过速度慢的其他github镜子.

我尝试通过硅谷使用VPN(PIA)甚至更慢.

如果我在网络连接桥接的同一台机器上的VM中使用kali linux,我可以使用SSH和HTTPS从bitbucket获得~8 mb/s.

如果我使用visual studio团队服务托管构建代理(windows),我得到大约60mb/s(可能缓存?)

我试过从git bash,ubuntu bash(windows 10),windows cmd,powershell以相同的低速运行git.

我在安装git时尝试使用"OpenSSL库"和"本机Windows安全通道库".

我尝试从2.14降低版本2.00,但没有区别.

我位于澳大利亚.

我已经说过bitbucket的支持,他们建议MSS/MTU必须是1436或更低.我的路由器和PC默认为1500但是在Windows中使用wireshark我可以看到所有数据包的MTU都是1436.

在kali linux中使用tcpdump我也看到了1436的MTU.

总结一下,我改变了以下内容:不同的PC/VM不同版本的Windows不同的物理网络连接.

我要么在windows中获得~200kb/s max,要么在linux中获得8mb/s max.

linux和windows git实现之间有什么不同,可能导致这些速度差异?

编辑:如果git使用慢速网络共享(看到有关此问题的其他问题)我尝试使用我的本地克隆做一个cp -r我使用与我相同的路径获得大约1gb/s的传输速度(RAID 0 SSD) git config.

编辑:如果我将我的Kali VM中的网络连接到Windows,我得到8mb/s,如果我使用NAT,那么我得到200kb/s表示它与https通过windows而不是git客户端导致问题.这有帮助吗?

编辑2:看来所有通过Windows的HTTPS流量上限为200kb/s,这是一个Windows问题,而不是一个git问题.我将开始一个新问题.

https://superuser.com/questions/1244551/https-traffic-40x-slower-than-http-in-windows-10-x64

git networking github bitbucket

26
推荐指数
1
解决办法
2699
查看次数

在C#中获取整数的上下字节并将其作为char数组发送到com端口,如何?

CI会这样做

int number = 3510;

char upper = number >> 8;

char lower = number && 8;

SendByte(上部);

SendByte(低级);

上下都是= 54

在C#我这样做:

            int number = Convert.ToInt16("3510");
            byte upper = byte(number >> 8);
            byte lower = byte(number & 8);
            char upperc = Convert.ToChar(upper);
            char lowerc = Convert.ToChar(lower);
            data = "GETDM" + upperc + lowerc;
            comport.Write(data);
Run Code Online (Sandbox Code Playgroud)

但是在调试器编号= 3510,upper = 13和lower = 0这没有任何意义,如果我将代码更改为>> 6 upper = 54这绝对是奇怪的.

基本上我只想从16位数字中获取上下字节,并在"GETDM"之后将其发送到com端口

我怎样才能做到这一点?它在C语言中非常简单,但在C#中我完全被难倒了.

c# bytearray bitmask bit-shift char

10
推荐指数
2
解决办法
4万
查看次数

使用 Visual Studio 调试器使用的 API 获取 C# 异步调用的堆栈跟踪

是否可以获得 Visual Studio 2019 调试器提供的等效堆栈跟踪。

例如,如果我在 Visual Studio 内的异步代码中设置断点,我会在“调用堆栈”窗口中看到以下堆栈跟踪

    company.Common.dll!company.Common.Api.ResourcesDatabase.Lock() Line 58  C#
    company.Common.dll!company.Common.Api.ResourcesDatabase.ResourcesDatabase(bool openAndCreateDB) Line 29 C#
    company.Api.dll!company.Api.GlobalsDownloader.DownloadNewGlobals_UnderLock(System.Func<company.Common.Api.DTO.GlobalsType, System.Threading.Tasks.Task> reloadGlobals, company.Common.Api.DTO.GlobalsType globalsType) Line 124 C#
    [Resuming Async Method] 
    [External Code] 
    [Async Call Stack]  
    [Async] company.Api.dll!company.Api.ApiService.VerifyLogin_UnderLock(bool skipInitTasks, System.Threading.CancellationToken ct) Line 1147   C#
    [Async] company.Api.dll!company.Api.ApiService.VerifyLogin(System.Threading.CancellationToken ct) Line 955  C#
    [Async] company.Api.dll!company.Api.ApiService.Init(System.Action initComplete, bool dontCheckForUpdates) Line 250  C#
    [Async] company.Editor.exe!company.Editor.ViewModel.MainViewModel.Init() Line 524   C#
    [Async] company.Editor.exe!company.Editor.ViewModel.MainViewModel.InitViewModel.AnonymousMethod__31_0() Line 331    C#
Run Code Online (Sandbox Code Playgroud)

如果我打电话new System.Diagnostics.StackTrace(1,true)我会得到以下信息

   at company.Common.Api.ResourcesDatabase.Lock()
   at company.Common.Api.ResourcesDatabase..ctor(Boolean openAndCreateDB)
   at company.Api.GlobalsDownloader.<DownloadNewGlobals_UnderLock>d__6.MoveNext()
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.MoveNextRunner.InvokeMoveNext(Object stateMachine) …
Run Code Online (Sandbox Code Playgroud)

c# callstack stack-trace visual-studio async-await

9
推荐指数
0
解决办法
1304
查看次数

尝试/最后阻止vs调用dispose?

这两个代码示例之间是否有任何区别,如果没有,为什么using存在?

StreamWriter writer;
try {
    writer = new StreamWriter(...)
    writer.blahblah();

} finally {
    writer.Dispose();
}
Run Code Online (Sandbox Code Playgroud)

VS:

using (Streamwriter writer = new Streamwriter(...)) {
    writer.blahblah
}
Run Code Online (Sandbox Code Playgroud)

我的意思是在第二个例子中你真的应该把它放在try块中,所以添加finally块确实不会花费太多精力.我知道整个事情可能包含在一个更大的尝试块中但是,对我来说似乎是多余的.

c# dispose using try-catch streamwriter

8
推荐指数
3
解决办法
9644
查看次数

如何在perl正则表达式中匹配换行符\n?

我想匹配这条线,

<center>'''<font color="blue"><font size="18.0pt">No Change Alarms Help &amp; Information</font></font>'''</center>
Run Code Online (Sandbox Code Playgroud)

并替换它,

=<center>'''<font color="blue">No Change Alarms Help &amp; Information</font>'''</center>=
Run Code Online (Sandbox Code Playgroud)

现在,如果标签总是字体颜色或中心,那将很简单,但它们绝对可以是任何东西,并且可以有多个.

我目前的代码是这样的:

$html =~ s/<font size=".+">(.+)<\/font>/$1/g;
Run Code Online (Sandbox Code Playgroud)

但这显然不会在每一端做=.

我想做的是:

$html =~ s/\n(.+)<font size=".+">(.+)<\/font>(.+)\n/=$1$2$3=/g;
Run Code Online (Sandbox Code Playgroud)

然而,它无法匹配换行符,我无法弄清楚如何使它匹配它们,任何线索?

(我正在将html转换为wiki标记,但转换器会填充字体大小,因此我手动将它们转换为wiki样式标题.)

regex perl

6
推荐指数
2
解决办法
2万
查看次数

HttpClientHandler抛出PlatformNotSupportedException

以下代码抛出"PlatformNotSupportedException"'此平台不支持此操作"

它是一个.NET标准库(尝试编译1.4和2.0),由作为Web应用程序运行的.NET 4.6.1项目引用.

var handler = new HttpClientHandler();
handler.SslProtocols = SslProtocols.Tls12;
Run Code Online (Sandbox Code Playgroud)

为什么Tls12抛出此异常以及解决方法是什么?

c# ssl httpclient asp.net-core

6
推荐指数
2
解决办法
3693
查看次数

如何停止.+在字符的第一个实例而不是在perl中使用正则表达式的最后一个?

我想替换:

'''<font size="3"><font color="blue"> SUMMER/WINTER CONFIGURATION FILES</font></font>'''
Run Code Online (Sandbox Code Playgroud)

附:

='''<font color="blue"> SUMMER/WINTER CONFIGURATION FILES</font>'''=
Run Code Online (Sandbox Code Playgroud)

现在我的现有代码是:

$html =~ s/\n(.+)<font size=\".+?\">(.+)<\/font>(.+)\n/\n=$1$2$3=\n/gm
Run Code Online (Sandbox Code Playgroud)

然而,最终结果如下:

=''' SUMMER/WINTER CONFIGURATION FILES</font>'''=
Run Code Online (Sandbox Code Playgroud)

现在我可以看到正在发生的事情,它匹配<font size ="..... all the way up to the end of the <font colour blue">的不是我想要的,我希望它停止在第一个实例"不是最后一个,我认为那是什么把那个标记放在那里,但是我已经尝试.+.+?.*和.*?每次都有相同的结果.

任何人都有任何想法我做错了什么?

regex perl

5
推荐指数
3
解决办法
2251
查看次数

Resharper(2016.1 C#)是否建议使用try catch块捕获异常?

Resharper或现有的resharper插件是否建议使用try catch块捕获异常?

例如,File.ReadAllText抛出以下异常,是否有任何现有插件允许resharper/intellisense在我键入catch块时显示这些插件?

在此输入图像描述

编辑:添加了一个链接,您可以投票给resharper建议 https://resharper-support.jetbrains.com/hc/en-us/community/posts/115000073730-Suggest-exceptions-to-catch-when-typing-try -catch块

c# resharper exception visual-studio

5
推荐指数
1
解决办法
284
查看次数

如何备份可承受 Azure 服务器删除的 Azure SQL

Azure SQL 具有内置备份。如果从门户中删除 SQL 数据库和服务器,这些备份就会丢失。

备份可承受从门户删除服务器的 Azure SQL 的最佳实践是什么。

我已手动将数据库导出到存储位置,但 Azure 表示不应将其用作备份。为什么不应该使用它?我应该做什么?

azure database-backups azure-virtual-machine azure-sql-database azure-sql-server

5
推荐指数
1
解决办法
2092
查看次数

每次我们重新发布软件时,如何阻止防病毒误报?

每次发布时,Windows Defender和AVG / Avast会将我们的软件应用程序视为病毒/误报。我们有一个代码签名证书,并且还添加了taggant。

每次发布软件时,我们都必须经过在多个AV供应商站点上进行误报的过程。

我们如何才能将我们的公司代码签名证书标记为安全的,或者避免每次发布时都浪费这种耗时的误报报告流程?

编辑:是否有任何我们可以付费以自动完成的首映支持?

Edit2:由于这些误报,我们实际上是由于“恶意软件分发”而吊销了证书。似乎除了购买另一种资产外别无选择。

antivirus false-positive

5
推荐指数
1
解决办法
485
查看次数