问题标签 [mono]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
performance - 通过远程访问单服务器应用程序的性能
这是我的设置:我为本地客户端机器编写了一个 .NET 应用程序,它实现了一个也可以在网页上使用的功能。为了使这个例子简单,假设客户安装了一个软件,他可以在其中输入一些数据并取回一些数据。
这个想法是创建一个网页,该网页包含一个表单,用户在该表单中输入相同的数据并获得与上述相同的结果。由于公司有可用的网络服务器,最初的想法是创建一个单一的网络服务,但由于未知原因而被驳回。“服务”不应作为 Web 服务运行,而应由 PHP 脚本调用。这目前是通过从 PHP 中通过 shell_exec 调用单声道应用程序来实现的。
所以现在我被我的应用程序的单声道端口卡住了,它工作正常,但执行时间太长。我已经删除了所有不必要的 dll、方法等,但是通过命令行调用应用程序 - 通过命令行参数提交所需的数据 - 大约需要 700 毫秒。我们预计每秒大约 10 次点击,所以这只能在为此任务设置大量服务器时才有效。
我假设 700m 与每次启动应用程序的成本有关,因为如果我只处理一次或五百次请求(我采用原始输入,稍微改变它并做500 次迭代,每次“新”数据。从第二次迭代开始,处理时间下降到每次迭代大约 1ms)
我的下一个想法是将单声道应用程序设置为远程服务器,这样它只需启动一次,然后就可以处理传入的请求。因此,我编写了另一个作为客户端的单声道应用程序。调用客户端,让客户端将数据传递给服务器并检索结果现在需要 344 毫秒。这更好,但仍然比我预期的要慢得多。
然后,我根据这篇博文从头开始实施了一个新项目,但遇到了同样的性能问题。
问题是:我是否缺少与可以提高客户端/服务器速度的单项目相关的内容?尽管为此任务创建 Web 服务的想法被驳回了,但 Web 服务在这种情况下会表现得更好(因为我不需要客户端应用程序来调用该服务),尽管据说远程处理比 Web 服务更快?
我本可以更清楚地说明这一点,但目前还不能实现 web 服务(请不要问为什么,我没有写要求;))
同时我检查了它确实是客户端的启动,这在远程处理场景中花费了大部分时间。
我可以想象从命令行通过管道访问服务器,这非常适合我的场景。我想这将使用套接字来完成?
command-line - 通过命令行访问正在运行的单声道应用程序
通过命令行(Linux/Unix)访问正在运行的单声道应用程序的最佳方式是什么?
示例:一个单声道服务器应用程序正在运行,我想使用命令行以最轻/最快的方式向它发送命令,从而导致服务器发回响应(例如到标准输出)。
c# - C# Mono - 低级键盘钩子
我正在使用在CodeProject.com 上找到的代码作为低级键盘挂钩。唯一的问题是它使用了在单声道中不起作用的外部 DLL 调用。我想知道是否有人知道一种方法可以完成与该代码相同的事情,但可以在使用 .net 的 Windows 和使用 mono 的 Linux 中运行?
编辑:澄清我正在尝试做的事情:我正在制作一个Dashboard like application。该程序位于系统托盘中,当用户按下热键时,它将弹出所有小工具。所以程序没有焦点,所以通常它不会捕捉到任何击键,所以我使用低级键盘钩子并钩住用户定义为热键的两个键。但我正在为此使用 Windows DLL 调用,这在使用单声道的 Linux 中不起作用。所以我想知道是否有办法做同样的事情,但会使用单声道在 Linux 中运行?
c# - 如果我在调度时在 c# 中注册一个事件,我是否保证在调度期间不会再次被调用?
在 C# 中,我发现自己偶尔想在同一事件的调度过程中为某个事件注册一个方法。例如,如果我有一个基于同一事件的连续分派转换状态的类,我可能希望第一个状态的处理程序注销自身并注册第二个处理程序。但是,我不希望在下次触发事件之前调度第二个处理程序。
好消息是,微软的 C# 实现看起来就是这样。事件注册语法糖被替换为对 System.Delegate.Combine 的调用,它只是将当前调用列表和新方法连接到一个单独的列表中,并将其分配给事件属性。这给了我我想要的行为。
所以,我的问题是:这是语言标准保证的行为吗?我希望能够在 mono 下的其他平台上运行我的 C# 代码,并且通常希望确保我不会根据其实现对语言标准做出假设。
我在 MSDN 上找不到任何明确的信息。
如果你想要一个我正在谈论的具体例子,这里有一个例子:
至少在 Windows 上,输出是:
.net - 是否有用于通用音频文件解码的 .NET 库?
您知道任何可以解码多种类型音频文件的 .NET 库吗?理想情况下,它应该与平台无关,因此可以在 Windows 和 *NIX 上与 .NET 和 Mono 一起使用。
我已经折磨了谷歌搜索满足我需求的图书馆,但不幸的是我找不到任何东西。所以在为 GStreamer 和朋友写很多包装类之前,我想我可以在这里问一下。:)
支持的音频文件应该(至少)
- MP3,
- OGG Vorbis 和
- FLAC(可选)。
由于我需要它的应用程序只是为了好玩,因此该库应该是开源的——或者至少是免费的。此外,向用户显示的唠叨屏幕可能会很糟糕或不切实际,因为我计划将其放入服务流程中。
我需要使用这个库/这些库来解码音频文件并将一个字节 [] 传递给我的 libOFA 包装器,以便我可以为它生成一个 MusicDNS 指纹。我的实验应用程序很可能在基于 Linux 的服务器上运行。
.net - Mono .NET 项目是否包含在最流行的 Linux 发行版的最新版本中?
我想知道 mono.net 是否包含在 Ubuntu、Kubuntu 和 Fedora 以及其他流行发行版的默认安装中?
如果是这样,是否有人有充分的理由不使用它来开发主要针对 linux 的新 GUI 应用程序?
.net - Mono .NET Windows.Forms 使用什么 GUI 框架实现?
Mono .NET Windows.Forms 使用什么 GUI 框架实现?
示例:KDE、Gnome、X11 本身?
c# - IDE 用于 Linux 上的 C# 开发?
我有哪些选择?一年多前我尝试过 MonoDevelop,但它非常有问题。最新版本是稳定的开发环境吗?
mono - Mono 的代码覆盖率?
当您使用 mcs 编译器时,mono 会创建自己的调试目标,称为 .mdb 文件。
有没有办法在 Mono 中使用 NCover 或其他代码覆盖工具?
一个命令行工具会更好,所以我可以将它添加到我们的持续集成服务器中。