小编410*_*one的帖子

x64与x86有如此不同的性能结果的原因是什么?

我正在回答关于Code Review的问题,我发现x64和x86之间的性能(如很多)有一些有趣的差异.

class Program
{
    static void Main(string[] args)
    {
        BenchmarkRunner.Run<ModVsOptimization>();
        Console.ReadLine();
    }

    [MethodImpl(MethodImplOptions.AggressiveInlining)]
    static public ulong Mersenne5(ulong dividend)
    {
        dividend = (dividend >> 32) + (dividend & 0xFFFFFFFF);
        dividend = (dividend >> 16) + (dividend & 0xFFFF);
        dividend = (dividend >> 8) + (dividend & 0xFF);
        dividend = (dividend >> 4) + (dividend & 0xF);
        dividend = (dividend >> 4) + (dividend & 0xF);
        if (dividend > 14) { dividend = dividend - 15; } …
Run Code Online (Sandbox Code Playgroud)

.net c# performance compilation internal

15
推荐指数
2
解决办法
582
查看次数

Visual Studio发布Web对话需要过多的时间来加载

每当我为特定项目启动Visual Studio 2015 Publish Web Dialogue(或Visual Studio 2013,两者都有相同的问题)时,它需要大约20-30秒才能打开.同样,当我在发布配置文件之间切换时,当我切换到特定的配置文件时,它需要相同的时间.当我切换到列表中的配置文件A(来自配置文件B)时,它需要与启动对话本身时相同的时间.当我从配置文件A切换到配置文件B时,它根本不需要任何时间.

有没有人对此有任何想法?仅在这个问题上,我每天失去20-30分钟的开发时间.

我已检查过.pubxml两个配置文件中的XML(),除了服务器上站点的名称和Web.configSQL字符串转换结果外,它们是相同的.(它们都发布到同一服务器端点,两者都预编译了所有页面/控件设置为一个程序集,唯一的区别是配置文件的名称和站点的名称.)

我还考察了轮廓.user文件,二者相再次.我不知道这里可能出现什么问题.

请注意,发布不需要花费很多时间.配置文件A需要与配置文件B一样发布.

此外,在我完全重新安装Windows之前,即使在我的旧Visual Studio 2015安装中也存在此问题.(当我升级到Windows 10时,我完全重新安装了Windows.)

我对任何想法都持开放态度,我可能会再次重新安装Visual Studio 2015 以查看问题是否消失.

进一步说明:在加载对话框时,它会完全锁定Visual Studio .

更新:重新安装Visual Studio完全没有纠正问题.

另一个更新:在打开对话时,Visual Studio偶尔会崩溃.

dialog visual-studio web-publishing visual-studio-2013 visual-studio-2015

14
推荐指数
1
解决办法
1322
查看次数

计算在具有特定ID的项目之前显示的项目数

我有这个项目,我需要做的任务之一就是找到特定对象出现在哪个页面上.该对象具有预定义的ID,ID的显示顺序从0到N,但它们可能会跳过值.

显然,这意味着使用我正在寻找的元素的ID将不起作用,就像它是25,并且每页应该有10个项目,但是其中8个项目缺失,它会尝试适合第3页,但只适合第2页.

这就是我现在所拥有的,我想知道是否有更好的方法:

int itemsPerPage = Convert.ToInt32(masterDbContext.Settings.First(x => x.Name == "ItemsPerPage").Value);
int itemCount = masterDbContext.Items.OrderBy(x => x.Id).TakeWhile(x => x.Id < currentItemId).Count();
int pageNumber = (int)Math.Ceiling((double)itemCount / itemsPerPage);

Response.Redirect("~/View/" + rootItem.Id + (pageNumber > 1 ? "/Page/" + pageNumber : ""));
Run Code Online (Sandbox Code Playgroud)

如果没有更好的方法来做到这一点,那很好.我只是希望有,因为我确信TakeWhile,当我Items在数据库中拥有数千个时,可以花一些时间.

请注意:此方法目前似乎有效.

.net c# linq entity-framework entity-framework-6

7
推荐指数
1
解决办法
523
查看次数

在X轴刻度上渲染HTML

我想在我的D3图的x轴上呈现HTML.基本上,我希望轴上的每个标签都是数据中另一列的超链接.

我试过了

x.domain(data.map(function(d) { return "<a href=\"" + d.SiteUrl + "\">" + d.Name + "</a>"; }));
Run Code Online (Sandbox Code Playgroud)

但它根本不起作用.而不是获取超链接我得到实际的文本值:

<a href="http://example.com">Something</a>
Run Code Online (Sandbox Code Playgroud)

我也尝试过添加

.tickFormat(function(d) { return "<a href=\"" + d.SiteUrl + "\">" + d.Name + "</a>"; })
Run Code Online (Sandbox Code Playgroud)

在x轴上,以及改变.attr("x", ...)

.attr("x", function(d) { return "<a href=\"" + d.SiteUrl + "\">" + x(d.Name) + "</a>"; })
Run Code Online (Sandbox Code Playgroud)

在图表上.

我错过了什么吗?

html javascript graph d3.js

7
推荐指数
1
解决办法
1288
查看次数

为什么默认情况下不使用C#"使用别名"?

请考虑以下代码.

using System.ComponentModel.DataAnnotations;

namespace Foo
{
    public class Bar
    {
        [Required, MaxLength(250)]
        public virtual string Name { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

除非你有一个花哨的IDE(在幕后进行各种查找和静态分析),否则"必需"和"MaxLength"实际来自哪里都很模糊.特别是当可能导入多个名称空间时,具有相似的含义.

作为C#的相对新手,我发现自己总是很难弄清楚某些事情的来源.特别是在查看StackOverflow等地方的其他代码片段时.

using DataAnnotations = System.ComponentModel.DataAnnotations;

namespace Foo
{
    public class Bar
    {
        [DataAnnotations.Required, DataAnnotations.MaxLength(250)]
        public virtual string Name { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在很明显"必需"和"MaxLength"的来源.您可以采取另一个步骤,并执行以下操作:

using Required = System.ComponentModel.DataAnnotations.RequiredAttribute;
using MaxLength = System.ComponentModel.DataAnnotations.MaxLengthAttribute;

namespace Foo
{
    public class Bar
    {
        [Required, MaxLength(250)]
        public virtual string Name { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

这与PHP和Js ES6的工作方式非常相似.

我很好奇为什么这不是C#的默认值?为什么我和其他所有C#开发人员一起考虑别名的不良做法?是否存在一些潜在的性能原因?

.net c# ide visual-studio

6
推荐指数
1
解决办法
384
查看次数

在包含 UTF-8 数据的字节数组中查找最近的安全拆分

我想拆分大量 UTF-8 编码数据,以便可以并行化将其解码为字符。

似乎没有办法找出Encoding.GetCharCount读取了多少字节。我也无法使用,GetByteCount(GetChars(...))因为它无论如何都会解码整个数组,这是我试图避免的。

c# string encoding utf-8

3
推荐指数
1
解决办法
361
查看次数