问题标签 [shared-data]
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.
python - 在与多处理同时运行的两个 python 进程之间共享图像和数据
我目前正在做一个 python 项目。这是关于图像检测的。我必须处理与多处理同时运行的进程。第一个函数与图像采集卡通信并进行一些图像处理。第二个功能与执行实际图像检测的神经网络通信。第二个函数需要在第一个函数中抓取的图像进行检测。然后第二个函数应该提供结果,第一个函数使用这些结果在视频流(检测到的对象所在的位置)上绘制矩形。
代码看起来像这样:
如您所见,两个进程都在无限循环中运行。至于现在,我将 fun1 中创建的图像保存在一个文件夹中,fun2 可以访问它们。fun2 神经网络的结果保存在 .json 文件中,fun1 可以在其中访问它们。
结果和图像都会在每次迭代中发生变化。我想知道,是否有办法将当前图像直接发送到 fun2 并将结果从 fun2 发送到 fun1 而无需使用外部 .json 文件。有没有直接沟通的方法?
我希望我可以理解地解释我的问题。
谢谢你的协助!
c# - C# OneDrive 类似于 Windows 资源管理器的扩展
我发现这个问题/解决方案与编程 OneDrive 之类的扩展有关:
在 Windows 资源管理器中创建一个特殊文件夹,如 DropBox 或 OneDrive
是否可以通过文件不占用本地磁盘空间的方式来做到这一点(就像在 OneDrive 中那样)?因此,仅通过同步标题/属性并在用户想要阅读/编辑它时从云中实际下载整个文件来显示它们?
*目标:具有数 TB 容量的云(共享驱动器)解决方案。如果要同步文件,那么它在笔记本电脑上没有用(SSD大小的限制)......
android - 在哪里存储用户数据?
我正在开发一个 Android 应用程序,当我的应用程序将由同一用户安装在另一部手机上时,我想恢复用户设置。
我不想使用 Dropbox 或 Google Drive,因为并非所有用户都在这些云中拥有帐户。我想使用所有 Android 用户都有的东西。一些云链接到谷歌帐户?但我找不到任何东西。
应该有很常见的解决方案,但我还没有找到任何关于它的信息。
c# - 当知道它们并行运行时,使用 xUnit 进行集成测试的策略是什么?
我将 dotnet core 与 xUnit 一起用于我的单元测试和集成测试。我以这种方式遵循 Given-Then-When 哲学的所有测试都有一个基本抽象类:
总而言之,对于每个事实 (then),构造函数 (given) 和动作 (when) 都会再次执行。这对于实现幂等测试非常有趣,因为每个事实都应该可以独立运行(给定的应该是幂等的)。这对于单元测试非常有用。
但是对于集成测试,有时我会在这样的场景中发现问题:
我有一个要测试的 mongoDb 存储库实现。我有测试来验证我可以在上面写,还有其他测试来验证我可以从中读取。但是由于所有这些测试都是并行运行的,所以我必须非常注意如何设置Given
以及如何以及何时清理上下文。
测试A类:
- 给定:我将文档写入数据库
- 时间:我阅读了文件
- 然后:结果就是预期的文档
测试B类:
- 给定:回购可用
- 时间:我写一份文件
- 然后:它毫无例外地写入
现在假设两个测试类并行运行,有时会出现以下问题:
- 测试 A 执行并写入 ID 为 1 的文档。同时测试 B 尝试写入 ID 为 1 的文档,
when
但由于同一数据库中已有具有相同 ID 的文档而失败。 - 测试 B 执行,它有一个拆卸/清理,在测试结束时删除文档。与此同时,测试 A 正要读取一个预期存在的文档......但它失败了,因为该文档已被删除(来自测试 B)
问题是:是否有可能并行运行集成测试并实现幂等Given
而不会因为一个测试与另一个测试的数据混淆而遇到问题?
我想到了一些想法,但我没有经验,所以我正在寻找意见和解决方案。
- 解决方案 A:确保每个测试类都使用其他测试无法访问的数据。例如,通过为测试数据提供不同的 ID。这确实可以解决问题,但它迫使开发人员了解其他测试正在使用哪些 Id。
- 解决方案 B:有某种组件 Given 和 Teardown,为每个测试准备场景。同样,我们将依赖比测试类本身更大的东西,它似乎违反了我想要遵循的 GivenThenWhen 哲学。
xUnit 有可能在测试之间使用不同的共享上下文,但我也看不出这与我的模板有何匹配:https ://xunit.github.io/docs/shared-context 。
您如何使用 xUnit 处理这些集成测试场景?塔
更新 1:这是我如何使用 GTW 哲学和 xUnit 创建测试的示例。这些事实有时会失败,因为它们无法插入具有已经存在的 Id 的文档(因为使用具有相同 id 的文档的其他测试类同时运行并且尚未清理)
更新 2:如果我制作随机 ID,有时我也会遇到问题,因为要从数据库中检索的预期文档包含的项目比测试预期的要多(因为,同样,并行运行的其他测试在数据库)。
database - 如何与新应用程序共享现有应用程序的本地数据库并使两者同时工作?
我的一个客户的库存管理项目支持在线和离线模式来管理大量库存数据,并且是使用 Xamarin.Forms 和 sqlite-net 构建的。现在,客户想要创建另一种类似的应用程序,并希望我们使用第一个应用程序的相同本地数据库。
他需要的实际功能是,如果我在一个应用程序中有数据,那么它可以共享到第二个应用程序,反之亦然。就像,如果我登录到第一个应用程序,那么用户在启动时会自动登录到第二个应用程序。出于这个原因,我们需要在这两个应用程序之间拥有一个共享数据库。因此,这两个应用程序都可以在共享数据库中读取和写入。我怎样才能做到这一点?Xamarin 中最好和最有效的方法是什么?
经过一些研究,我发现了诸如 shreduserid 之类的东西,用于在 android 应用程序之间共享数据,以及用于 iOS 应用程序数据共享的 App Groups。如果有人可以帮助我解决如何与他们一起工作以及遵循的最佳方法。
请任何有任何想法或做过此类事情的人提供您的建议/链接/代码等。
谢谢!
vue.js - 单文件组件实例之间的共享数据
有没有办法让同一个单文件组件的多个实例共享数据而不用总线或事件传递它?
我的意思是,除了为data
这个目的而唯一声明为函数的 sectione 之外,实际上每个其他部分都是在 istances 之间共享的,对吧?
我想要的是static
PHP 或 C 类的变量。
我的具体用例
我有一个基于 vue 库中的组件(来自 Element UI 的 Carousel)的单个文件组件,需要将其高度定义为 a prop
,但是我的包装器组件的每个实例都有不同高度的不同内容。
我想做的是让每个实例检查其内容高度,找到最大值并设置包装轮播的高度。
为此,我可以按类检索 dom 元素并使用 js 检查最大高度,但我需要确保每个实例只检索其自己的内容,而不是其他的,所以我希望有一些像共享的想法计数器并让每个实例在其方法中增加此计数器,created
并使用它来生成自己的 id。
这可能吗?
如果没有,还有其他方法吗?我想避免为此目的为每个实例传递一个道具。
c# - 开发单主机多客户端MYSQL数据库
如果标题不正确,请见谅。我仍在尝试了解这是如何工作的。
我已经在笔记本电脑上安装了 MySQL 工作台和 MySQL 服务器。根据图片,我已经成功创建了一个存储驱动程序详细信息的数据库。
我只能在一台笔记本电脑上访问此信息。但是,我也想从其他 PC 访问此信息。我正在考虑将主数据库放在一个安全的房间里,然后将大约 3 台额外的 PC 连接到主数据库。
我还在 Visual Studio 上编写了一个简单的 c# 脚本,该脚本在存储数据库的主笔记本电脑上运行。该脚本只允许用户输入他的用户名和密码,然后在数据网格视图上显示数据库的包含(数据库中的表)。我已包含 SQL 注入代码以防止不需要的字符。此应用程序还允许用户从数据库中插入、更新和删除信息,前提是登录的用户具有这些权限。
现在我也想在其他 3 台 PC 上运行这个应用程序,但显然我遇到了问题。这个问题是这些电脑无法访问主数据库。主数据库用户具有允许他更改数据库的权限,但位于访问点中的其他用户没有此权限。他们所能做的就是输入他们的用户名和密码,然后查看数据库中的数据已显示在数据网格视图上。
所以我的问题是如何授予对其他三台 PC 的访问权限以访问主数据库?MySQL Workbench 和 MySQL 服务器目前只安装在我的笔记本电脑上,而没有安装在其他 3 台 PC 上。
parallel-processing - Pytorch:将同一批数据发送到多个 GPU,并在每个 GPU 上单独执行操作
我有相同的数据加载器来向 4 个模型提供数据,每个模型都在单独的 GPU 上加载不同的超参数。我想减少数据加载造成的瓶颈,所以我打算在所有 GPU 上加载由数据加载器准备的同一批,以便它们单独计算并执行反向传播步骤。我已经将数据缓存到 RAM 中以避免在实例化数据加载器时出现磁盘瓶颈。
我在尝试着:
- 将同一批数据发送/广播到N个GPU。我想这只有在我们可以同步/等待所有 GPU 完成一个批次的操作,然后才能继续下一个的情况下才有可能。
- 奖励:一旦一个批次准备好(最多 P 个批次)就预取下一个批次可以帮助确保数据连续流向 GPU,避免等待。
我不想达到:
类似的问题:
- 这个是关于跨多个 GPU 进行 Conv2D 操作
- 这个是关于并行执行不同的 GPU 计算,但我不知道我的问题是否可以用torch.cuda.Stream()解决
- 这个是关于加载不同的模型,但它不处理共享同一个批次。
- 这正是我要问的,但它是 CUDA/PCIe 和 7 年前的。
更新:
我在 Pytorch中发现了一个非常相似的问题,讨论最后有一个使用多处理的正向道具的小例子,但我想知道如何将这种方法扩展到火炬数据加载器。
rust - 如何更改动态调度/特征对象的数据指针?
我有一个Vec<u8>
命名和一个名为typevec
的变量。我希望 的数据指针指向.x
&dyn Trait
x
vec
我正在尝试开发像 JVM 这样的虚拟机。每个实现所需特征 ( or ) 的结构 ( Point
, )实际上都是一条指令 ( , , ...) 将实现该特征,该特征包含指令本身的代码。Line
Display
Debug
Add
Mov
Instruction
这是另一个更接近我想要做的例子:
多个struct
不同长度的 s 将与Vec<u8>
. 在这个例子中, my struct
s 的内存布局可能与我想象的不匹配,但这并不重要,因为它们的布局不需要在编译时知道,而只需要在运行时知道。将其Vec<u8>
视为程序从文件中读取的字节,而文件本身是由同一程序创建的。
即使它是不安全或未定义的行为并且不使用智能指针/堆分配,我该怎么做?
laravel - Laravel Jetstream Inertia 共享全球应用数据
我想分享一些我发现的东西,因为那里没有太多信息(我找不到)。带有 Jetstream Inertia 的 Laravel 8 有一些共享对象,例如用户、当前路线……您可以使用 $page 变量在组件中访问它们。我需要添加一个菜单数组作为全局变量,但无法弄清楚,即使在官方 Inertia 文档中找到了一些信息。这在 Laravel Jetstream 中有所不同。
直到我找到了 Laravel Jetstream 的共享数据中间件(ShareInertiaData),我才知道该怎么做。
这是它:
- 在 app/Http/Middleware.php 中创建一个中间件。我打电话给我的 ShareInertiaCustomData。
- 放在app/Http/Kernel.php
我希望这会有所帮助,并且没有其他人将不得不花费数小时来解决这个问题。