- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我目前正在将一个 VS2005 C++ 应用程序从 CE5 移植到 CE6,我遇到了严重的性能问题。到目前为止,检索动态内容的单个 HTTP 请求在 CE5 上需要 40 毫秒,在 CE6 上需要 350 毫秒。由于我已经清理了一堆效率低下的问题,这些值过去变得更糟,提高了两个系统的性能,但目前我陷入了这种延迟。作为记录,这两个测试都是在同一台机器上进行的,网络服务器不是 CE 提供的,而是用 C++ 实现的自定义服务器。另请注意,问题不在于网络 IO,在提供静态文件时,CE6 在同一台机器上的性能甚至优于 CE5,而在于动态内容处理。
在试图找出程序执行如此糟糕的原因时,我偶然发现了一些令我困惑的事情:在 CE5 下,用于 x86 的 Interlocked* API 既不使用编译器内部函数也不使用真正的函数调用,而是使用内联汇编代码。这段代码有一条评论说,内在包含锁前缀,只有多处理器系统才需要这些前缀,并且会减慢仅在 CE5 等单核上运行的代码。在 CE6 上,这些功能是使用编译器内部函数(包括锁定前缀)实现的。由于这些功能被例如使用Boost 和 STLport,两者都在网络服务器内部使用,我想知道这些是否是罪魁祸首。
我注意到的另一件事是一些字符串解析函数需要非常长的时间。更糟糕的是,似乎在第一次调用同一个函数后第二次调用花费的时间更少,所以看起来好像正在进行某种缓存。由于这是一个通过 TCP 接收并在内存中解析的短 (<1kB) 字符串,我无法想象哪个缓存对此负责。唯一的缓存可能是指令缓存,但程序不大于 CE5 版本,如果代码从未缓存的内存运行,则不会显示这些缓存效果。
TLDR - 问题:
总结 没有依赖于可执行文件的问题,更不用说依赖于Interlocked API了。运行相同的可执行文件证明了这一点。但是,在具有不同平台设置的不同机器上运行会有所不同。我们现在回到 Platform Builder,试图找出这两个平台之间的差异。
最佳答案
没有。 SMP 支持需要 WEC7。很可能在 CE6 中,OEM 禁用了其他内核。
据我所知没有。
要么使用 performance profiling tools或使用计时调用检测您的代码,以缩小花费时间过长的范围。
关于c++ - Windows CE 5 和 6 之间的互锁 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14346100/
我有 Windows CE 5.0 设备,它不支持任何硬件加速。 我正在寻找一些好的 2d 图形库来做以下事情。 我更喜欢 Compact .Net Framework 中的后端编程。 使用抗锯齿绘制
我有一个 POS 软件,需要为 windows CE 开发一个收集模块,以便在 Honeywell Dolphin 6100 设备上运行。 我需要开发一个在 Honeywell 6100 设备上运行的
我必须找出 Windows CE 4.0/5.0 设备上的内存泄漏问题。是否有任何工具可以向我显示所有进程信息,如内存、句柄数...以便我可以识别罪魁祸首进程。 有没有CE 4.0/5.0的内存泄漏检
我正在开发一个网站并且有一个 htaccess 规则如下:RewriteRule ^(ac|bc|cd)/(.*) $2?folder=$1 [L,QSA] 但是,我想在 domain.com 之后传
我是 CE 环境的新手,我想为在 CE(5 及更高版本)上运行的计算机(英特尔)创建应用程序。我到底需要什么才能开始,我要去哪里?我以前从未使用过 CE,但我确实有使用 C、C++、C# 和 Java
是否有等效于 isatty()在 Windows CE 上?换句话说,有没有办法在代码中检测 stdin/stdout/stderr 是否已被重定向? 最佳答案 你可以调用 GetStdIoPath(
我开发了一个基于媒体的应用程序,该应用程序在带有 Win CE 的设备上运行。我需要一个静音/取消静音按钮来控制应用程序音量。我已经使用 .Net 紧凑型框架开发了该应用程序。 最佳答案 我在 Win
我正在寻找WinCE的开发板,最好有以下接口(interface): VGA/DVI 屏幕 用于 kb/鼠标的 USB 以太网(10Mbit 就可以,100 会更好 ;-) ) 存储(例如:SD/MM
长期以来,您可以做到这一点 execute multiple statements with SQL CE .事实上我正在使用 SQL Server Compact Toolbox做到这一点。但是当我
我正在使用 CE 6.0 处理一个项目,我需要重建树。我的问题是我必须将树更新到 2009 年 5 月,这需要 2008 年汇总和以下 5 个月度更新,但我找不到它们(有 2009 年汇总和以下 20
甚至需要定期压缩 SQL CE 数据库吗?自动收缩就足够了吗?我们的平均数据库大小约为 100Mb,大用户达到 400-500Mb(但这种情况非常罕见)。如果我们必须手动压缩,我们如何判断何时应该压缩
我打算在一个小型但生产的网站中使用SQL CE 4.0,我想知道SQL CE 4.0可以处理多少负载: 并发连接数, 每个表的行数和 数据库的总大小。 最佳答案 可能对您有用的是Scott Guthr
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
我不知道这段代码有什么问题,它现在给了我一天的错误: select row_number() over(order by s.title) as rowNumber, s.id from story
我希望能够在启动时检查损坏的数据库,然后以编程方式修复它。我可以 do that很容易。 我的问题是我想测试事情是否按我期望的方式工作。有谁知道故意破坏数据库的方法,以便我可以测试我的代码? 最佳答案
我正在尝试在 Windows CE 6 设备上配置 SMB 文件共享服务器。 我最初的尝试主要是使用桌面版本的 NK.exe。 当我启动时,SMB0: 作为 smbserver.dll 运行 我已经设
我接管了一个 Windows-CE 6.0 应用程序,我想将其移植到其他平台。它是一个相对简单、独立的 GUI 应用程序,使用嵌入式 C++ 4.0 版编写 我感兴趣的第一个目标是常规 Windows
我正在尝试使用 SQL Server Compact Edition 3.5 作为销售应用程序的数据库后端。将安装 3-4 个 Windows 窗体应用程序,所有这些应用程序(通过 LINQ2SQL)
我正在编写一个 wpf destop 应用程序,并且想使用 SQL Server CE 作为后端。我正在尝试想出一种进行有效数据分页的好方法。在 SQL Server Express 中,我可以执行以
由于谷歌没有提供我想知道的内容,我尝试询问 stackoverflow :) sql ce 3.5 数据库的最大并发连接数是多少? 谢谢 j. 最佳答案 我相信您正在寻找的信息是 SQL Server
我是一名优秀的程序员,十分优秀!