小编Mar*_*ark的帖子

ThreadStatic与ThreadLocal <T>性能:加速或替代?

我最近阅读了这篇关于标记为ThreadStatic的字段性能不佳的帖子 - 它们显然比正常的字段访问慢60倍..NET 4的ThreadLocal <T>执行得更好吗?

有没有提供高性能线程专用存储的替代方案?

.net thread-local threadstatic

22
推荐指数
2
解决办法
7740
查看次数

在Google App Engine上使用Scala可以很好地使用哪种Web框架?

我正在着手一个将在Google App Engine上托管的项目,并且阅读了几本关于Scala的书籍,它绝对是我想要编写的语言.问题在于选择哪个Web框架......

Lift似乎是一个明显的选择,但除了我没有对它的AJAX/Comet符号变暖之外,它似乎强烈反对有状态服务器,这对App Engine来说并不是好兆头.我意识到Lift 中可以使用无状态调度程序,但这似乎否定了Lift框架的许多功能.

Scala-GWT尚未准备就绪,因此不是一个好的选择.

将Java GWT与Scala混合是可能的,但是否定了Scala的所有优点(即我们回到了大量的样板代码).

我对Spiffy和Scalatra的无保留意见是他们并不是特别成熟.

因此问题是:

是否有一个好的(即相当成熟的)框架可用于Google App Engine(即有状态客户端,无状态服务器),它与scala很好地配合使用?

google-app-engine scala web-applications

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

GPU和SIMD是否可能在.NET/Java VM中实现?

一段时间以来,主流计算硬件都采用了SIMD指令(MMX,SSE,3D-Now等),最近我们看到AMD将480个流的GPU带入与CPU相同的芯片中.

像F#,Scala和Clojure这样的函数式语言也越来越受欢迎,其中一个共同的吸引力是这些语言中并发编程的容易程度.

是否有任何计划让Java VM或.NET CLR开始提供对并行计算硬件资源的访问,以便功能语言可以成熟以利用硬件?

看起来好像虚拟机是目前针对高性能计算的瓶颈,与SIMD和GPU的访问获得授权的第三方库和后期编译器(tidepowered.net,OpenTK,ScalaCL,梵天,等等,等等)

有没有人知道微软/甲骨文/开源社区的任何计划/路线图是他们的新硬件和编程范例最新的虚拟机?

有没有充分的理由说明供应商在采用方面如此迟钝?

编辑:

为了解决到目前为止的反馈,GPU编程确实很复杂,并且做错了,会使性能恶化.但众所周知,并行性是计算的未来 - 所以这个问题的关键在于,如果应用程序和硬件之间的运行时不支持它,那么硬件和编程语言无法采用并行范例...为什么我们不在VM供应商的雷达/路线图上看到这个?

clr f# jvm scala clojure

16
推荐指数
2
解决办法
2335
查看次数

如何解决MVC Filter属性中的依赖注入问题

我有一个派生自AuthorizationAttribute的自定义属性类,它对控制器操作执行自定义安全性.OnAuthorizationCore方法依赖于各种其他组件(例如DAL)以判断用户是否可以调用操作.

我正在使用Autofac进行依赖注入.ExtensibleActionInvoker声称能够在动作过滤器上执行属性注入.在运行时设置属性的属性(这似乎是一个坏主意)将在一个简单的单元测试中工作,但在繁忙的多线程Web服务器中它肯定会出错,所以这个想法似乎是一种反模式.因此这个问题:

如果我的AuthorizationAttribute依赖于其他组件才能正常工作,那么正确的[架构]模式是什么才能实现这一目标?

即AuthorizationAttribute取决于IUserRepository ...如何这种关系来解决?

asp.net-mvc dependency-injection filter autofac

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

通用约束:我可以测试可以作为引用或值类型的泛型的等式吗?

我想要一个可以接受引用或值类型的通用类,并且只执行基于相等性测试的操作.考虑以下:

public class Property<TProp>
  where TProp : struct, IEquatable<TProp>
{
   public TProp Value;

   public void SetValue(ObservableObject owner, TProp value)
   {
      if (!Value.Equals(value))     // cannot use != on struct constrained TProp
      {
          // ... set the property
      }
   }
}

public class ByRefProperty<TProp>
  where TProp : class   // Dont want to require IEquatable<> on reference type TProp
{
   public TProp Value;

   public void SetValue(ObservableObject owner, TProp value)
   {
      if (Value != value)           
      {
          // ... set the property
      }
   }
} …
Run Code Online (Sandbox Code Playgroud)

c# generics equality

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

SSIS在几分钟后显着减速是否有原因?

我正在运行一个针对SQL 2008的相当大的SSIS包 - 我在开发环境(Win7-x64 + SQL-x64-Developer)和生产环境(Server 2008 x64 + SQL Std x64)中获得相同的结果.

症状是初始数据加载在每秒50K到500K记录之间尖叫,但几分钟后速度急剧下降并最终缓慢地爬行.数据库采用简单恢复模型,目标表为空,并且满足最小日志批量插入的所有先决条件.数据流是从RAW输入文件到模式匹配表的简单加载(即没有复杂的数据转换,没有排序,没有查找,没有SCD等)

该问题具有以下品质和弹性:

  1. 无论目标表是什么,问题都会持续存在.
  2. RAM使用率很低(45%) - 有足够的备用RAM供SSIS缓冲区或SQL Server使用.
  3. Perfmon显示缓冲区没有假脱机,磁盘响应时间正常,磁盘可用性很高.
  4. CPU使用率很低(在sqlserver.exe和DtsDebugHost.exe之间共享徘徊在25%左右)
  5. 磁盘活动主要在TempDB.mdf上,但I/O非常低(<600 Kb/s)
  6. OLE DB目标和SQL Server目标都出现此问题.

总结一下,我预计在软件包减速之前,磁盘,CPU或RAM都会耗尽,而不是像SSIS软件包正在午睡.SQL服务器仍然响应其他查询,我找不到任何性能计数器或记录事件背叛问题的原因.

我会非常感激地回答任何合理的答案/建议.

performance ssis

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

使用枚举实现层次结构的最佳C#模式是什么?

我正在实现代表距离(或长度)的值类型.有一个枚举代表不同的度量单位,例如:

public enum DistanceUnit 
{
   Millimeter,
   Centimeter,
   Meter,
   Kilometer,
   Inch,
   Foot,
   Yard,
   Mile
};
Run Code Online (Sandbox Code Playgroud)

这些测量属于两个系统中的一个 - 公制或英制.由于枚举不支持hierachies,表示这种层次结构的最佳模式是什么?

它是否使用位标志?或者使用两个单独的枚举以及一些方法来关联它们?或者声明静态成员而不是枚举?

给我一些建议?如何实现这一点?


编辑 - 更多说明:我有几个不可变的结构(由T4生成)代表各种测量:

public struct Meters : IEquatable<Distance>, 
                       IEquatable<Meters>, 
                       IEquatable<Millimeters>, ... IComparable<> etc.. etc..
{
    public readonly decimal Value;
    ...
    public static implicit operator Distance (Meters other) {
        // Can implicitly cast to Distance
    }
}

public struct Millimeters ...
public struct Centimeters ....
Run Code Online (Sandbox Code Playgroud)

...等,以及手动编码的不可变距离,旨在表示任何度量:

public struct Distance : IEquatable<Distance>, 
                       IEquatable<Meters>, 
                       IEquatable<Millimeters>, ...
                       IFormattable
{

    public readonly …
Run Code Online (Sandbox Code Playgroud)

c# enums hierarchy

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

是否可以在.NET中使用不安全的代码来实现高效的固定大小数组?

有没有一种在.NET中实现固定大小数组的方法,不需要不安全的代码?

我的目标是创建一个表示固定大小数组的值类型,该数组可以嵌入(作为成员包含在其他类型中) - 即我特别希望避免创建一个数组作为声明它的类型的单独对象.

我意识到.NET的数组实现非常出色并且在CLR/CIL级别得到支持 - 并且真的不想讨论是否只使用数组......这里的探索是否是一个安全的,固定大小的,价值类型的实现是可能的,效率几乎一样好.

c# arrays unsafe

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

非时间维度中最后一个孩子的计算成员?

在SSAS多维数据集中,如何为非时间维度创建聚合为LastChild的度量?

源数据在任何给定日期都有相同业务记录的许多版本.时间维度的粒度为DATE,而不是秒和毫秒.

事实记录具有时间戳和增量(标识)主键.实际上,我想要的是将度量计算为给定日期所有编辑的最后一个值.

到目前为止,我看到的选项分为两类:

  • 产生一个低至秒的时间维度.这将导致非常大且低效的时间维度.

要么

  • 隐藏度量并使用计算的度量替换它们,这些度量根据主键查找任何给定日期的最后一个值.这很麻烦且效率较低.

是否有解决这个问题的最佳位置或替代技术?

数据的自然层次结构是:

  1. 业务关键
  2. 记录时间戳(指向TIME维度的链接)
  3. 代理钥匙

sql olap ssas mdx

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

自定义DependencyObject继承树

我竭力要找到所使用的财产继承树(或传承语境)足够的信息DependencyObjectDependencyProperty.

我想使用DependencyProperty典型WPF页面之外的值继承功能,这样对象A就是逻辑父对象B,因此分配给对象A上的属性的值将自动传播到对象B,除非它已在本地set(有点像FlowDirectionWPF中的属性).

如果对象A和对象B是从DependencyObject,并且不是a的子节点UIElement (换句话说,对象A是它自己的),那么如何建立逻辑树以便DependencyProperty理解B是A的子节点?

Hillberg可冻结计谋以及技巧的约什-史密斯的袋子不完全是我要找的.我希望从现有的元素树检索属性...我要创造我自己的,非可视元素树...即有超过的传承上下文控制.

有谁知道这个知识藏在哪里?

.net wpf dependency-properties dependencyobject

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