我很惊讶地发现mono比.NET更快.有谁知道为什么会这样?我期待单声道比.NET慢,但至少我的实验并非如此.
我有一个带有.NET框架的windows xp笔记本电脑.我在windows xp上运行vmware vmplayer上的CentOS.我想尝试单声道.因此抓住了Mono 2.6.1源并将其安装在vmplayer的CentOS上.我已经编写了一个测试web服务应用程序,使用.Net 2.0在wndows上执行它,它工作,我将二进制文件转移到vmplayer中的centos,没有任何重新编译,并在centos上执行它.华友世纪有效!生活是美好的,然后别的东西吸引了我的注意力.在centos上执行应用程序似乎更快.我不相信自己的眼睛.
为了证实我的观察结果,我将网络排除在外,因为网络响应取决于很多外部因素.
我从互联网上抓取了小的虚拟循环代码,在windows和CentOS中执行的visual studio中编译,结果如下
Output on windows console is HelloConsole\bin\Debug>HelloConsole.exe
Result =2.66666664666712E+24
37443.6077769661 ms
Output on Centos console is [rupert@bagvapp Math.Pow]$ mono HelloConsole.exe
Result =2.66666664666712E+24
28790.6286 ms
Run Code Online (Sandbox Code Playgroud)
如果有人能解释这种行为,那就太好了.我的外行人的理解是Mono的实现比.NET框架更有效.即使我认为Mono的数学实现只是有效的.但是很多像处理财务数据,图形计算这样的实现很大程度上依赖于数学库.在没有vmware的情况下直接在Mono/Centos上执行测试会更有趣,但这需要一些时间.我会试试下周末.
public static void DummyLoop()
{
double sumOfPowers = 0;
int count = Convert.ToInt32(ConfigurationManager.AppSettings["count"]);
for (int i = 0; i < count; i++)
{
sumOfPowers += Math.Pow(i, 2);
}
Console.WriteLine("Result =" + sumOfPowers);
}
static void Main(string[] args)
{
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
DummyLoop();
stopWatch.Stop(); …Run Code Online (Sandbox Code Playgroud) 我主要开发业务应用程序.没有科学运作.没有复杂的计算.只需将用户界面绑定到数据库.我使用线程的唯一原因是在后台做一些工作并仍然保持UI响应.
这可能不是最好的方法,但这就是我所遵循的
1.首先创建一个工作应用程序(没有线程)并将其提供给最终用户以便进行反馈.
2.一旦所有需求都被锁定,我尝试在有意义的地方使用线程来提高性能.
步骤1和2的代码绝对不同,并且线程代码在实际代码中占主导地位.
1.对于业务线应用程序,F#会让我的生活更轻松吗?
2.是否有任何特定的UI技术最适合F#?我主要研究ASP.NET和Silverlight.WPF现在然后.
3.有哪些业务应用/演示与F#的好例子?
我不是在询问是否有可能在F#中开发业务线应用程序.我在问,与C#相比,F#是否会让我的生活更容易开发业务线应用程序?我主要担心的是线程和UI同步.
我正在开发一个WPF 4.0应用程序,我们从远程Web服务中获取数据.Web服务向其客户公开了大约120多种方法.如果来自我的WPF应用程序的Web服务调用失败,我需要重试n次,可以通过App.Config进行配置.怎么实现这个?是否有任何设计模式可以解决这个问题?
.NET中预先装配程序集的优点和缺点是什么?
我听说预先咬合会提高性能.什么时候我应该预先jit,什么时候不应该预先jit?
我有一个oracle表,记录数为99896618.
我需要获取一小块数据(比方说100条记录)以在网页上显示它(在网络世界中我们称之为分页).目前我使用以下查询来完成该操作,但是用户对性能不满意.
SELECT * FROM (select rownum rnum,f.* from findings f where rownum<90000100 )
WHERE rnum > 90000000
Run Code Online (Sandbox Code Playgroud)
目前需要1分22秒才能得到结果.反正是为了让它变得更好.我肯定对任何类型的建议都开放,包括修改表结构或添加索引.
(仅供参考,我使用ASP.NET作为服务器端Web技术,使用ADO.NET作为数据访问层,使用Silverlight进行客户端演示)
任何可用于silverlight的免费数据库都可以存储在独立存储中?
XAP代表什么?它是首字母缩略词吗?我知道silverlight XAP文件包含什么,但不知道它代表什么.
有没有办法在silverlight 3中创建一个可调整大小的子窗口?任何指针都非常感谢.
我只是想知道公司如何通过提供免费的RIA应用程序开发平台来赚钱.他们投入了大量资金和人力资源来创建和改进这些平台.当然没有商业公司免费提供,会有某种策略.但微软如何从银光中赚钱?Adobe如何通过Flash赚钱?是否通过提供开发应用程序的工具?或者是通过许可任何软件技术?或者是其他东西?
我有一个字符串(xml),我需要暂时将其存储为内存流,然后将其作为文件存储在最后.
我知道我们可以使用textwriter直接将xml存储在一个文件中,但这不是我想要的.我希望将字符串转换为内存流,然后写入文件流.
我该怎么实现呢?共享代码将非常有帮助.