我需要在Windows平台上使用C++中的XmlRpc.尽管我的朋友向我保证XmlRpc是一种"广泛使用的标准技术",但它并没有很多可用的库.事实上,我在Windows上只发现了一个库,(另外一个声称"你必须做很多工作才能在Windows上编译).我找到的库是Chris Morley的"XmlRpc ++".但是,它不支持SSL.
因此,我的问题是:我应该使用哪个图书馆?
我们刚刚购买了一台32核的Opteron机器,我们获得的加速有点令人失望:超过大约24个线程我们看不到加速(实际上总体上变慢)并且在大约6个线程之后它变得非常线性.
我们的应用程序非常适合线程:我们的工作分为大约170,000个小任务,每个任务可以单独执行,每个任务需要5-10秒.它们都是从大小约为4Gb的相同内存映射文件中读取的.它们偶尔写入它,但每次写入可能有10,000次读取 - 我们只是在170,000个任务的每一个末尾写入一些数据.写入受锁保护.分析表明锁不是问题.线程在非共享对象中使用大量JVM内存,并且它们对共享JVM对象的访问非常少,而且只有一小部分访问涉及写入.
我们在Linux上使用NUMA进行Java编程.我们有128Gb RAM.我们有2个Opteron CPU(型号6274),每个16核.每个CPU有2个NUMA节点.在英特尔四核(即8核)上运行的相同工作几乎线性地扩展到8个线程.
我们已经尝试将只读数据复制到每个线程一个,希望大多数查找可以是NUMA节点的本地查找,但是我们没有观察到它的加速.
有32个线程,'top'显示CPU的74%"us"(用户)和大约23%的"id"(空闲).但是没有睡眠,几乎没有磁盘i/o.有24个线程,我们可以获得83%的CPU使用率.我不确定如何解释'空闲'状态 - 这是否意味着'等待内存控制器'?
我们尝试打开和关闭NUMA(我指的是需要重启的Linux级别设置),并没有看到任何区别.当启用NUMA时,'numastat'仅显示约5%的'分配和访问未命中'(95%的缓存未命中是NUMA节点的本地).[编辑:]但是添加"-XX:+ useNUMA"作为java命令行标志给了我们10%的提升.
我们的一个理论是我们最大化内存控制器,因为我们的应用程序使用了大量的RAM,我们认为有很多缓存未命中.
我们可以做些什么(a)加速我们的程序以接近线性可扩展性,或(b)诊断正在发生的事情?
另外:(c)我如何解释"顶部"结果 - "空闲"是否意味着"在内存控制器上被阻止"?(d)Opteron与Xeon的特性有何不同?
道歉,我已经扫描了许多类似的问题,但没有人帮助过我.
我正在运行Android Studio 3.0.1,我是新手,我正在关注在线教程"HelloWorld"程序,但随后添加了对java.util.Base64.getDecoder()的调用.当我在我的实际手机(三星Galaxy S8)上运行时,这在运行时失败:
java.lang.NoClassDefFoundError: Failed resolution of: Ljava/util/Base64;
Caused by: java.lang.ClassNotFoundException: Didn't find class "java.util.Base64" on path: DexPathList[[zip file "/data/app/com.skedgo.helloworld-1/base.apk", zip file "/data/app/com.skedgo.helloworld-1/split_lib_dependencies_apk.apk", zip file "/data/app/com.skedgo.helloworld-1/split_lib_slice_0_apk.apk", zip file "/data/app/com.skedgo.helloworld-1/split_lib_slice_1_apk.apk", zip file "/data/app/com.skedgo.helloworld-1/split_lib_slice_2_apk.apk", zip file "/data/app/com.skedgo.helloworld-1/split_lib_slice_3_apk.apk", zip file "/data/app/com.skedgo.helloworld-1/split_lib_slice_4_apk.apk", zip file "/data/app/com.skedgo.helloworld-1/split_lib_slice_5_apk.apk", zip file "/data/app/com.skedgo.helloworld-1/split_lib_slice_6_apk.apk", zip file "/data/app/com.skedgo.helloworld-1/split_lib_slice_7_apk.apk", zip file "/data/app/com.skedgo.helloworld-1/split_lib_slice_8_apk.apk", zip file "/data/app/com.skedgo.helloworld-1/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.skedgo.helloworld-1/lib/arm64, /system/lib64, /vendor/lib64]]
Run Code Online (Sandbox Code Playgroud)
我在AndroidManifest.xml中:
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="27"/>
Run Code Online (Sandbox Code Playgroud)
我有:编译SDK版本:API 26:Android 8.0(Oreo)
我怎么解决这个问题?
我认为"java.util.Base64"是标准Java库的一部分,至少对于我正在使用的版本,所以我不需要做任何特殊的事情来使用它.我对Gradle一无所知,但我知道我正在使用它.
我目前正在思考多线程应用程序可能无法很好扩展的原因。
我知道并一直与之抗争的两个原因是:
还有什么问题?
我正在使用 WPF 语音识别库,试图在桌面应用程序中使用它作为菜单命令的替代方案。(我想专注于没有键盘的平板电脑体验)。它有效 - 有点,除了识别的准确性太差以至于无法使用。所以我试着听写成 Word。Word 运行得很好。我在这两种情况下都使用我的内置笔记本电脑麦克风,并且两个程序都能够同时听到相同的语音(前提是 Word 保留键盘焦点),但 Word 做得对,WPF 做得很糟糕。
我尝试了通用 DictationGrammar() 和微小的专用语法,并且尝试了“en-US”和“en-AU”,在所有情况下,Word 都表现良好,而 WPF 表现不佳。即使将 WPF 中的专业语法与 Word 中的一般语法进行比较,WPF 也有 50% 的错误率,例如将“size small”听成“color small”。
private void InitSpeechRecognition()
{
recognizer = new SpeechRecognitionEngine(new System.Globalization.CultureInfo("en-US"));
// Create and load a grammar.
if (false)
{
GrammarBuilder grammarBuilder = new GrammarBuilder();
Choices commandChoices = new Choices("weight", "color", "size");
grammarBuilder.Append(commandChoices);
Choices valueChoices = new Choices();
valueChoices.Add("normal", "bold");
valueChoices.Add("red", "green", "blue");
valueChoices.Add("small", "medium", "large");
grammarBuilder.Append(valueChoices);
recognizer.LoadGrammar(new Grammar(grammarBuilder));
}
else
{
recognizer.LoadGrammar(new DictationGrammar());
} …Run Code Online (Sandbox Code Playgroud) 我们正在使用C++和Win32编写Windows桌面应用程序.我们的对话框外观丑陋,带有"Windows XP风格":静态文本的背景为灰色.对话框背景也是灰色的,这不是问题,但在选项卡控件中,背景为白色,文本的灰色背景非常明显.
在过去,我们已经做了很多自己的控件绘制,但是现在我们尽可能地使用标准的look'n'feel,并尽可能避免重写标准行为.
我们正在使用Win32 API,它有点过时,但我认为即使使用ATL也会出现问题.我们正在创建一个DIALOGTEMPLATE.该文本处于"静态"控制(0x0082).我们为样式设置的唯一标志是"SS_LEFT".文本控件位于选项卡控件内:"SysTabControl32"只有一个标志:WS_CLIPSIBLINGS设置在其上.我已经尝试过SS_WHITERECT和WS_EX_TRANSPARENT等设置,但无济于事.
所有这些都是使用标准的Windows对话框消息处理程序绘制的.我的主要问题是"我们做错了什么?" 而不是"我怎么能解决它?",虽然如果没有人可以帮我解决第一个问题,我会接受后者.
有任何想法吗?
我正在使用IntelliJ 9.0.1.我打开了"调试"面板.我之前在Debug面板中有一个"Output"子面板,显示了我程序的System.out文本输出.我点击 - > | 按钮隐藏它,现在我无法取回它.我注意到使用Variables和Watches子面板时,当我隐藏它们时,我在Debug工具栏的最右边会出现一个图标.但是我没有输出面板的图标.我尝试重启IntelliJ但它没有帮助,也没有关闭并重新打开Debug面板.
如何恢复"输出"子面板?