小编Dor*_*oby的帖子

为什么\ w只匹配javascript正则表达式中的英文单词?

我正在尝试使用javascript代码在某些文本中查找网址.问题是,我正在使用的正则表达式使用\ w来匹配URL中的字母和数字,但它与非英语字符(在我的情况下是希伯来字母)不匹配.

那么我可以使用什么代替\ w来匹配所有语言中的所有字母?

javascript regex hebrew

9
推荐指数
3
解决办法
7802
查看次数

GC中断和TPL

我有一个WCF服务.在服务工作期间,它需要调用两个Web服务.所以有类似的代码:

var task1 = Task.Factory.StartNew(() => _service1.Run(query));
var task2 = Task.Factory.StartNew(() => _service2.Run(query));
Task.WaitAll(new[] { task1 , task2 });
Run Code Online (Sandbox Code Playgroud)

大部分时间这种方法都可以,但偶尔我会看到执行时间出现峰值,第一项任务需要几秒钟才能开始.看着perfmon,我意识到这正是GC发生的时候.显然,GC优先于运行我的任务.这是不可接受的,因为延迟对我来说非常重要,我更喜欢GC在请求之间而不是在请求中间发生.

我尝试以不同的方式进行此操作,而不是旋转我自己的任务,我使用了WebClient.DownloadStringTask.

return webClient.DownloadStringTask(urlWithParmeters).ContinueWith(t => ProcessResponse(clientQuery, t.Result),
                                                                           TaskContinuationOptions.ExecuteSynchronously);
Run Code Online (Sandbox Code Playgroud)

这没有用; GC现在在任务开始后运行,但在继续之前运行.再说一次,我猜它认为系统现在处于空闲状态,所以现在是开始GC的好时机.只是,我负担不起延迟.

使用TaskCreationOptions.LongRunning,导致调度程序使用非线程池线程,似乎解决了这个问题,但我不想创建这么多新线程 - 这个代码将运行很多(每个请求多次).

克服这个问题的最佳方法是什么?

.net garbage-collection task-parallel-library

9
推荐指数
1
解决办法
434
查看次数

Unity:为两个接口注册相同的类型

我在Unity容器中看到一个奇怪的行为,当使用两个接口时,它们都注册到同一个装饰器.代码示例将更清晰.

我有以下类层次结构:

   public interface IBaseInterface
    {

    }

    public interface IInterface1: IBaseInterface
    {

    }
    public interface IInterface2: IBaseInterface
    {

    }
    public class Interface1Impl : IInterface1
    {
    }
    public class Interface2Impl : IInterface2
    {
    }

    public class BaseInterfaceDecorator: IInterface1,IInterface2
    {
        private readonly IBaseInterface baseInterface;

        public BaseInterfaceDecorator(IBaseInterface baseInterface)
        {
            this.baseInterface = baseInterface;
        }
    }

    public class MyClass
    {
        private readonly IInterface1 interface1;

        public MyClass(IInterface1 interface1)
        {
            this.interface1 = interface1;
        }            
    }
Run Code Online (Sandbox Code Playgroud)

这是注册码:

var container = new UnityContainer();           
        container.RegisterType<IInterface1, BaseInterfaceDecorator>(
            new InjectionConstructor(
                new ResolvedParameter<Interface1Impl>())); …
Run Code Online (Sandbox Code Playgroud)

c# unity-container

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

Windows与Linux内存分配/ std :: list构造函数性能

我正在将C++代码从Linux移植到Windows.在这个过程中,我发现以下行在Windows下(在完全相同的硬件上)慢了大约10倍:

list<char*>* item = new list<char*>[160000]; 
Run Code Online (Sandbox Code Playgroud)

在Windows上需要大约10毫秒,而在Linux上需要大约1毫秒.请注意,这是平均时间.在Windows上运行此行100次需要约1秒.

这在win32和x64上都会发生,两个版本都在Release中编译,速度通过QueryPerformanceCounter(Windows)和gettimeofday(Linux)来测量.

Linux编译器是gcc.Windows编译器是VS2010.

不知道为什么会发生这种情况?

c++ linux windows memory-management stl

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

当ReadOnly = false时,性能计数器显示不同的值

我试图找出为什么某些性能计数器没有在我们的生产服务器中更新,当我遇到这个奇怪的问题时 - 计数器似乎在RawValue不是只读时返回不同的值.只读时它始终为零,当不是只读时,它显示不同的值.

这是我的PowerShell会话显示:

PS C:\Users\doron> $counter = new-object Diagnostics.PerformanceCounter
PS C:\Users\doron> $counter.CategoryName = "My category"
PS C:\Users\doron> $counter.CounterName = "My counter name"
PS C:\Users\doron> $counter.ReadOnly = 1
PS C:\Users\doron> $counter


CategoryName     : My category
CounterHelp      : My counter name
CounterName      : My counter name
CounterType      : NumberOfItems64
InstanceLifetime : Global
InstanceName     :
ReadOnly         : True
MachineName      : .
RawValue         : 0
Site             :
Container        :



PS C:\Users\doron> $counter.ReadOnly = 0
PS C:\Users\doron> $counter


CategoryName     : My category …
Run Code Online (Sandbox Code Playgroud)

.net windows powershell performancecounter

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

在 ServicePoint 上永久设置属性的正确方法

我想关闭特定连接上的 Nagle 算法(在我的情况下 - 到 ElasticSearch 服务器)。

我的代码目前看起来像这样:

ServicePointManager.FindServicePoint(new Uri(uriWithoutLocalPath)).UseNagleAlgorithm = false;
Run Code Online (Sandbox Code Playgroud)

问题是ServicePoint对象在一段时间后被回收,导致它丢失设置。因此,我不能在系统启动时只运行一次此代码。看来我面前有几个选择:

  1. 全局关闭 Nagle 算法(因此,影响我不想影响的连接)。
  2. 增加MaxServicePointIdleTime,以便ServicePoint永远不会回收(可能是个坏主意?我的直觉告诉我)。
  3. 设置某种计时器,每 N 秒重置一次属性,其中 N 小于 a 的回收时间ServicePoint
  4. 每次使用连接时都重置属性。

我真的不喜欢这些选项中的任何一个,它们要么会影响系统中的其他东西,要么看起来对于我想要做的事情来说太复杂了(比如计时器选项)。在我看来,应该有一个简单的解决方案。想法?

c# servicepoint servicepointmanager

5
推荐指数
0
解决办法
273
查看次数

NHibernate的多对多效率低下?

我正在尝试使用NHibernate和Fluent NHibernate设置一个示例项目.我正在使用Fluent NHibernate网站上的示例映射.

我的问题是关于商店和产品之间的多对多映射.看来(在查看生成的SQL时),当将产品添加到商店时,NHibernate会删除属于该商店的关联表(StoreProduct)中的所有记录,然后再次插入所有记录,现在包括关联到我添加的新产品.

这是默认行为还是我遗漏了什么?每次我需要添加一个关联时,删除和重新插入所有关联似乎不是很有效.

nhibernate fluent-nhibernate

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

用于匹配包含点的整个单词的正则表达式

在下面的句子中:

我今天下午5点醒来

我想匹配下午5点.这种模式有效:

5 p\.m\.
Run Code Online (Sandbox Code Playgroud)

但我希望它只匹配整个单词(所以5 pmus不会匹配).所以我使用了这种模式:

\b5 p\.m\.\b
Run Code Online (Sandbox Code Playgroud)

但由于这个点,这不起作用.

什么是最简单的正则表达式来解决这个问题?我可以定义一个零宽度匹配(\ b样式),它不关心字符是否是单词字符,只要它是空格或字符串的结尾\开头?

.net regex

2
推荐指数
1
解决办法
3269
查看次数

如何使用.MDF文件(Sql 2008)将现有ASP.NET MVC 3项目迁移到Windows Azure模拟器(使用SQL Azure)

我在Visual Studio 2010中使用现有项目,使用.mdf(SQL 2008 Express)使用现有数据库的ASP.NET MVC 3.做了一些谷歌搜索,我感到困惑,因为有太多的资源.你能帮我指出一下简单的教程链接吗?

c# asp.net-mvc azure asp.net-mvc-3 azure-sql-database

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