问题摘要:
对于某些十进制值,当我们将类型从十进制转换为double时,会将一小部分添加到结果中.
更糟糕的是,可能存在两个"相等"的十进制值,这些值在转换时会产生不同的双精度值.
代码示例:
decimal dcm = 8224055000.0000000000m; // dcm = 8224055000
double dbl = Convert.ToDouble(dcm); // dbl = 8224055000.000001
decimal dcm2 = Convert.ToDecimal(dbl); // dcm2 = 8224055000
double dbl2 = Convert.ToDouble(dcm2); // dbl2 = 8224055000.0
decimal deltaDcm = dcm2 - dcm; // deltaDcm = 0
double deltaDbl = dbl2 - dbl; // deltaDbl = -0.00000095367431640625
Run Code Online (Sandbox Code Playgroud)
查看评论中的结果.结果从调试器的手表中复制.产生这种效果的数字的十进制数字远远少于数据类型的限制,所以它不能是溢出(我猜!).
更有趣的是,可以有两个相等的十进制值(在上面的代码示例中,参见"dcm"和"dcm2","deltaDcm"等于零),在转换时产生不同的双精度值.(在代码中,"dbl"和"dbl2",它们具有非零"deltaDbl")
我想它应该是与两种数据类型中数字的按位表示的差异相关的东西,但是无法弄清楚是什么!而且我需要知道如何按照我需要的方式进行转换.(比如dcm2 - > dbl2)
据我所知,对于使用@Annotations(或C#中的[Attributes]),您必须引用类元数据,以便您可以询问该类是否已注释(属性).
我的问题是JSF实现如何查找所有使用@ManagedBean注释的类?它是否扫描类路径中的所有类?或者有没有办法实际"查询"JVM的注释类?
我问这个是因为当我直接在我的web项目中添加带注释的支持bean时,没有问题.但我在JAR文件中定义的bean(可跨项目重用)未注册.有什么东西我必须告诉MyFaces指导它看哪个JAR文件?
此外,使用注释引入了许多不错的编程模式.我想知道我是否能以某种方式找到所有带注释的类......
我正在尝试CallContext.LogicalSetData(CallContextKey, value)根据Stephen Cleary的帖子http://blog.stephencleary.com/2013/04/implicit-async-context-asynclocal.html传递逻辑调用上下文(使用)的上下文信息; 并受到https://github.com/neuecc/OwinRequestScopeContext中的代码的启发.
该值将通过OWIN管道提供,但在呼叫进入WebApi控制器时不可用,该值未设置.
我还注意到在控制器中设置断点时,我看不到调用堆栈中的OWIN管道.显然,ASP.NET正在一个单独的调用上下文中进行控制器调用.
所以,
为什么(以及如何)ASP.NET将调用上下文从OWIN管道隔离到WebApi控制器?
如何将上下文数据从Pipeline传递到控制器?
我在Spring配置中使用DBCP数据源(使用默认配置)来管理我与数据库的连接,并且当客户端数量增加时,我遇到了死锁状态.
我发现在我使用的DBCP 1.2.1中存在死锁问题,应该在1.4中解决.所以我升级到1.4,但问题仍然存在.
在线程转储中,有许多线程被阻塞,顶部有以下堆栈跟踪:
java.lang.Thread.State: WAITING on org.apache.commons.pool.impl.GenericObjectPool$Latch@b6b09e
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1104)
at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
at org.springframework.jdbc.datasource.DataSourceTransactionManager.doBegin(DataSourceTransactionManager.java:200)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:350)
at org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:261)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:101)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:160)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:631)
Run Code Online (Sandbox Code Playgroud)
欢迎任何建议!
问题是,我们有大量的记录(超过一百万)从Java应用程序插入到单个表中.记录是由Java代码创建的,它不是从另一个表移动,所以INSERT/SELECT无济于事.
目前,我的瓶颈是INSERT语句.我正在使用PreparedStatement来加速这个过程,但我不能在普通服务器上每秒获得超过50个recods.该表根本不复杂,并且没有定义索引.
这个过程花费的时间太长,花费的时间会产生问题.
我该怎么做才能获得最大速度(INSERT每秒)?
数据库:MS SQL 2008.应用程序:基于Java,使用Microsoft JDBC驱动程序.
如果HTML足够复杂,HTML内容的布局和呈现可能需要一些时间.我无法找到有关如何编写HTML的最佳实践,以帮助布局引擎(特别是在IE中),以便页面重绘更快.是否存在这样一套最佳实践?
我当前的具体问题是我的表格数据(在表格元素中)导致绘制页面太慢,并使DOM更新(悬停效果)和动画非常缓慢.我确定这不是JavaScript性能.我使用dynaTrace AJAX检查了页面.当我将鼠标悬停在元素上时,CPU变得太忙,但是没有JS运行.并且通过向TR元素添加/删除类来实现悬停.我也在Firefox中尝试过YSlow,它没有显示任何特定问题.它也不是网络相关的.(Firefox更快地列出了页面,但这不是因为它的JS引擎更快)
是否有工具来描述IE中的绘图和布局,以便我可以找出问题的来源?什么可能导致绘图如此缓慢,以便我可以在HTML代码中避免它们?
我知道instrumentation是一种将跟踪代码动态添加到方法中以启用跟踪和调试的技术.
我想知道这是否只是一个"跟踪"选项,硬编码到CLR中只添加跟踪代码,还是有能力添加任何代码到方法?
例如,我想检查某个类中每个方法调用开头的条件(比如权限).我可以通过在执行时间的方法开头添加动态代码来实现吗?
我不确定这种跟踪"仪表"的工作原理是什么,但我想知道这是否也可以用于其他目标.
当我们有这样的事情时:
interface ISomething<U,V> { ... }
class Something<U,V> : ISomething<U,V> { ... }
Run Code Online (Sandbox Code Playgroud)
typeof(ISomething<,>)并typeof(Something<,>)会导致"泛型类型定义".但是如果我们将接口类型作为类实现的接口,它将是一个构造类型,它的类型参数都没有实际绑定:
typeof(Something<,>).GetInterfaces().SingleOrDefault()
Run Code Online (Sandbox Code Playgroud)
MSDN特别提到了这一点.我想要的是直接构造相同的类型(构造类型)ISomething<,>(没有子类,他们寻找基类型),我找不到任何方法这样做.
附加信息:
我甚至试过这个:
Type t1 = typeof(ISomething<,>);
Type t2 = t1.MakeGenericType(t1.GetGenericArguments()) // Yields a generic type definition
Type t3 = typeof(Something<,>).GetInterfaces().SingleOrDefault();
Run Code Online (Sandbox Code Playgroud)
在上面的代码中:
t1.Equals(t2)是真的,但是t1.Equals(t3)是假的,显然是因为t3构建了.
令人惊讶的t1.GetGenericArguments()[0].Equals(t3.GetGenericArguments()[0])是,虽然两者都是开放的(IsGenericParameter = true),但是我发现它们的属性没有任何差别.
这就是我需要这样做的原因:我需要一种在列表中存储Type对象的规范形式.对象有时来自基类/接口(例如上面的t3),有时直接来自(例如t1).我需要能够将这些相互比较.我无法存储泛型类型定义(使用.GetGenericTypeDefinition()),因为有时候我会有一个部分打开的构造泛型类型(比如ISomething),而GetGenericTypeDefinition会给我一个没有指定任何类型参数的类型.
制作我认为可能有用的类型规范的唯一方法是检查所有类型参数是否都是未绑定的,并执行GetGenericTypeDefinition.否则保持构造类型.
我拿a Type,查询其装配位置,然后从同一地址加载程序集,并从加载的程序集中找到相同的类型.结果类型不等于原始类型.
这是测试用例:
[TestMethod]
public void TestTypeLoadingWithFilePath()
{
var originalType = typeof(SomeClass);
var assemblyAddress = originalType.Assembly.Location;
var loadedAssembly = Assembly.LoadFile(assemblyAddress);
Assert.IsNotNull(loadedAssembly);
var loadedType = loadedAssembly.GetType(originalType.FullName);
Assert.IsNotNull(loadedType);
Assert.AreEqual(originalType, loadedType);
}
Run Code Online (Sandbox Code Playgroud)
最后一个断言测试失败.
这仅发生在Windows上的.NET Core上.(我正在测试最新版本,2.1.4).但.NET Framework不是这种情况.
我的问题是:
我知道WF设计师有重新托管能力.由于它是基于WPF的,我认为它可以在web中使用silverlight进行重新托管.
有没有人对此有任何经验?或者,有没有人知道一个简单而强大的基于Web的WF工作流设计器解决方案?
c# ×5
.net ×3
java ×3
performance ×2
.net-core ×1
annotations ×1
asp.net ×1
asynchronous ×1
clr ×1
deadlock ×1
decimal ×1
designer ×1
double ×1
dynamic ×1
generics ×1
html ×1
jsf-2 ×1
layout ×1
managed-bean ×1
owin ×1
profiling ×1
reflection ×1
silverlight ×1
spring ×1
sql-server ×1
tomcat ×1