小编Mik*_*ley的帖子

从一个寄存器复制到另一个

如何将一个寄存器的内容复制到另一个寄存器而不粘贴在剪贴板上?我猛拉了一个文本,它被拖入默认"寄存器.现在我想复制另一个文本而不删除/覆盖"寄存器.所以我想移动"寄存器的内容来说一些ab注册,以便我可以复制里面的新文本".这该怎么做?

vim vim-registers

82
推荐指数
2
解决办法
9913
查看次数

我该如何进行浮点比较?

我正在编写一些代码,其中包含以下内容:

double a = SomeCalculation1();
double b = SomeCalculation2();

if (a < b)
    DoSomething2();
else if (a > b)
    DoSomething3();
Run Code Online (Sandbox Code Playgroud)

然后在其他地方我可能需要做平等:

double a = SomeCalculation3();
double b = SomeCalculation4();

if (a == 0.0)
   DoSomethingUseful(1 / a);
if (b == 0.0)
   return 0; // or something else here
Run Code Online (Sandbox Code Playgroud)

简而言之,我有很多浮点数学正在进行,我需要对条件进行各种比较.我无法将其转换为整数数学,因为在这种情况下这样的事情毫无意义.

我以前读过浮点比较可能不可靠,因为你可以做这样的事情:

double a = 1.0 / 3.0;
double b = a + a + a;
if ((3 * a) != b)
    Console.WriteLine("Oh no!");
Run Code Online (Sandbox Code Playgroud)

简而言之,我想知道:我如何可靠地比较浮点数(小于,大于,相等)?

我使用的数字范围大致是从10E-14到10E6,所以我确实需要使用小数字和大数字.

我已将此标记为语言无关,因为无论我使用何种语言,我都对如何实现此目标感兴趣.

language-agnostic floating-point comparison

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

如何强制查询不使用给定表上的索引?

我目前正在进行一些测试,以确定在SQL Server 2005中为某个列包含索引的性能影响.

我使用的测试数据集大约有大约7200万行(大约6 GB的数据).为了实际测试索引的性能,我需要能够比较有和没有索引的性能.

这一切都很好,但首先创建一个索引并不是一个便宜的操作.如果我想在没有索引的情况下测试表,我至少需要禁用索引.要使用索引进行测试,我需要重新启用它,这需要相当长的时间.

有没有什么办法可以强制SQL Server 2005在执行查询时忽略给定的索引?我不想为了测试查询而禁用索引,因为它需要很长时间来禁用索引.

sql indexing sql-server-2005

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

如何在连接字符串上使用Web.Config变换?

在我当前的项目中,我有一些对本地开发机器有效的连接字符串:

<configuration>
  <connectionStrings>
    <add name="ApplicationServices"
         connectionString="Data Source=localhost;Initial Catalog=MyDB;Integrated Security=SSPI"
  </connectionStrings>
....
</configuration>
Run Code Online (Sandbox Code Playgroud)

我如何使用Web.Config转换从此表达式转换为对我们的生产服务器有效的表达式?生产服务器看起来像:

<configuration>
  <connectionStrings>
    <add name="ApplicationServices"
         connectionString="Data Source=IPAddress,Port;Initial Catalog=SomeOtherDB;User ID=TopSecretUsername;Password=SecurePassword"
  </connectionStrings>
....
</configuration>
Run Code Online (Sandbox Code Playgroud)

语法对我来说并不明显,而且我完全没有在它上面浏览页面.

c# connection-string web-config asp.net-mvc-3

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

ASP.NET Web API中不允许HTTP PUT

在我的Web API项目中,我无法执行HTTP PUT我的资源.我已经阅读了一些 关于这个问题的类似 问题 , 并且我遵循了建议的建议.

首先,我在我的机器上完全卸载了WebDAV(Windows 7 64位),然后重新启动了我的机器.

其次,WebDAV处理程序在我的指定中被删除,web.config并且HTTP PUT动词被指定为允许无扩展URL处理程序.

<modules runAllManagedModulesForAllRequests="false">
  <remove name="WebDAVModule"/>
</modules>

<handlers>
  <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
  <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
  <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
  <remove name="WebDAV"/>
  <add name="ExtensionlessUrlHandler-Integrated-4.0"
       path="*."
       verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS"
       type="System.Web.Handlers.TransferRequestHandler"
       resourceType="Unspecified"
       requireAccess="Script"
       preCondition="integratedMode,runtimeVersionv4.0" />
  <add name="AttributeRouting" path="routes.axd" verb="*" type="AttributeRouting.Web.Logging.LogRoutesHandler, AttributeRouting.Web" />
</handlers>
Run Code Online (Sandbox Code Playgroud)

我甚至尝试添加ISAPI无扩展URL处理程序(32位和64位)并将我的应用程序从集成管道应用程序池更改为经典应用程序池.

<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit"
      path="*."
      verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS"
      modules="IsapiModule"
      scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll"
      preCondition="classicMode,runtimeVersionv4.0,bitness32"
      responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit"
      path="*."
      verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS"
      modules="IsapiModule"
      scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll"
      preCondition="classicMode,runtimeVersionv4.0,bitness64"
      responseBufferLimit="0" />
Run Code Online (Sandbox Code Playgroud)

我目前正在使用Thinktecture IdentityModel来启用跨源资源共享(CORS)支持.为了我的理智,我已经选择了启用一切以确保HTTP …

c# iis-7.5 asp.net-web-api

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

这叫什么类型的架构?

对于我目前正在开发的Web应用程序(ASP.NET MVC),我们有以下架构:

  • Data Access Layer:用于将数据持久保存到任意数据库的逻辑
  • Domain:数据模型
  • Service Layer:业务逻辑(例如订单处理,账户管理等)
  • Controller:使用服务并向View提供/接收数据
  • View:用户的用户界面

从本质上讲,我把Model它分成了DAL,Service Layer然后把它分成了Domain.我觉得填充所有逻辑Model使得我的代码过于复杂.此外,我觉得它让我干净利落地表达我的业务逻辑,而不会让控制器做太多工作.

我的问题是:这种类型的架构叫做什么?

作为第二个问题:这种类型的架构是否有意义?如果没有,我做错了什么?

architecture model-view-controller asp.net-mvc design-patterns

24
推荐指数
3
解决办法
9718
查看次数

我的循环可以再次优化吗?

下面是我最里面的循环,运行几千次,输入大小为20 - 1000或更多.这段代码占用了99-99.5%的执行时间.我能做些什么来帮助挤出更多的表现吗?

我不打算将此代码移动到类似于使用树代码(Barnes-Hut)的东西,而是为了优化内部发生的实际计算,因为在Barnes-Hut算法中进行相同的计算.

任何帮助表示赞赏!

编辑:我在Core 2 Duo T5850(2.16 GHz)上使用Visual Studio 2008版本运行Windows 7 64位

typedef double real;

struct Particle
{
    Vector pos, vel, acc, jerk;
    Vector oldPos, oldVel, oldAcc, oldJerk;
    real mass;
};

class Vector
{
private:
    real vec[3];

public:
    // Operators defined here
};

real Gravity::interact(Particle *p, size_t numParticles)
{
    PROFILE_FUNC();
    real tau_q = 1e300;

    for (size_t i = 0; i < numParticles; i++)
    {
        p[i].jerk = 0;
        p[i].acc = 0;
    }

    for (size_t i = 0; i < …
Run Code Online (Sandbox Code Playgroud)

c++ math optimization loops physics

21
推荐指数
2
解决办法
1861
查看次数

我应该如何处理WebAPI中控制器构造函数中的异常?

假设我有一个构造函数,由于我无法控制的原因,它的初始化可能会引发异常.

FantasticApiController(IAwesomeGenerator awesome,
    IBusinessRepository repository, IIceCreamFactory factory)
{
       Awesome = awesome;
       Repository = repository;
       IceCream = factory.MakeIceCream();

       DoSomeInitialization(); // this can throw an exception
}
Run Code Online (Sandbox Code Playgroud)

通常,当WebAPI中的Controller操作抛出异常时,我可以通过csutom处理它ExceptionFilterAttribute:

public class CustomErrorHandler
{
    public override void OnException(HttpActionExecutedContext context)
    {
        // Critical error, this is real bad.
        if (context.Exception is BubonicPlagueException)
        {
            Log.Error(context.Exception, "CLOSE EVERYTHING!");
            Madagascar.ShutdownAllPorts();
        }

        // No big deal, just show something user friendly
        throw new HttpResponseException(new HttpResponseMessage
        {
            Content = new StringContent("Hey something bad happened. " +
                                        "Not closing …
Run Code Online (Sandbox Code Playgroud)

exception-handling asp.net-4.5 asp.net-web-api

15
推荐指数
1
解决办法
3841
查看次数

减少扩展的Mathematica会话中的内存使用量

我正在做一些相当长的计算,这可能很容易跨越几天.在这些计算过程中,有时Mathematica会耗尽内存.为此,我最终采取了以下措施:

ParallelEvaluate[$KernelID]; (* Force the kernels to launch *)
kernels = Kernels[];

Do[
   If[Mod[iteration, n] == 0,
      CloseKernels[kernels];
      LaunchKernels[kernels];
      ClearSystemCache[]];
   (* Complicated stuff here *)
   Export[...], (* If a computation ends early I don't want to lose past results *)
   {iteration, min, max}]
Run Code Online (Sandbox Code Playgroud)

这很好,但是随着时间的推移,主内核会累积内存.目前,我的主要内核占用大约1.4 GB的RAM.有什么方法可以强迫Mathematica清除它正在使用的内存吗?我试过乱扔垃圾ShareClear整个很多Modules,我用我的代码,但记忆似乎仍然在时间来建立.

我也试图确保在a之外没有任何大而复杂的运行Module,因此某些东西不会在范围内停留太长时间.但即便如此,我仍然有记忆问题.

我能做些什么吗?我总是会使用大量的内存,因为我的大多数计算涉及几个大而密集的矩阵(通常是1200 x 1200,但它可能更多),所以我对使用它很谨慎MemoryConstrained.


更新:

问题正是Alexey Popkov在他的回答中所说的.如果使用Module,内存会随着时间缓慢泄漏.在这种情况下,它恰好加剧了,因为我有多个Module[..]陈述."main" Module位于ParallelTable8个内核同时运行的位置.解决(相对)大量迭代问题,这是导致大量内存泄漏的滋生地Module.

memory-leaks memory-management wolfram-mathematica

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

Mathematica中Clear和Remove之间的区别

在Mathematica中,ClearAll的文档指出:

ClearAll[symb1, symb2, ...]
使用符号清除值,定义,属性,消息和默认值.

它还支持类似的格式,它可以清除与输入字符串模式匹配的任何值/定义:

ClearAll["form1", "form2", ...]
Run Code Online (Sandbox Code Playgroud)

但是还有函数Remove,文档说:

Remove[symbol1, ...]
完全删除符号,以便Mathematica不再识别它们的名称.

它还支持相同的基于模式的字符串输入ClearAll.

对我来说,似乎两个功能完全相同.使用其中一个有什么实际区别吗?

我知道,如果我举一个属性的象征,Clear不会删除,但ClearAllRemove意志.但似乎Remove并且ClearAll正在做同样的事情.

wolfram-mathematica

13
推荐指数
1
解决办法
2133
查看次数