我正在回答关于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) 每当我为特定项目启动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
我有这个项目,我需要做的任务之一就是找到特定对象出现在哪个页面上.该对象具有预定义的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在数据库中拥有数千个时,可以花一些时间.
请注意:此方法目前似乎有效.
我想在我的D3图的x轴上呈现HTML.基本上,我希望轴上的每个标签都是数据中另一列的超链接.
我试过了
x.domain(data.map(function(d) { return "<a href=\"" + d.SiteUrl + "\">" + d.Name + "</a>"; }));
Run Code Online (Sandbox Code Playgroud)
但它根本不起作用.而不是获取超链接我得到实际的文本值:
Run Code Online (Sandbox Code Playgroud)<a href="http://example.com">Something</a>
我也尝试过添加
.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)
在图表上.
我错过了什么吗?
请考虑以下代码.
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#开发人员一起考虑别名的不良做法?是否存在一些潜在的性能原因?
我想拆分大量 UTF-8 编码数据,以便可以并行化将其解码为字符。
似乎没有办法找出Encoding.GetCharCount读取了多少字节。我也无法使用,GetByteCount(GetChars(...))因为它无论如何都会解码整个数组,这是我试图避免的。
c# ×4
.net ×3
compilation ×1
d3.js ×1
dialog ×1
encoding ×1
graph ×1
html ×1
ide ×1
internal ×1
javascript ×1
linq ×1
performance ×1
string ×1
utf-8 ×1