8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

将大量数据从一台远程服务器传输到另一台远程服务器的最快方法是什么?

CugelTC 2月前

63 0

我尝试了一个带有 1 个摄像头的简单 Unity 程序,该程序带有跟踪姿势驱动器。结果如下所示:当给定 XYZ 格式的欧拉角时:向上俯仰 <=> X 减小向下俯仰 &...

我尝试了一个带有 1 个摄像头和一个跟踪姿势驱动器的简单 Unity 程序。结果如下所示:

当给定 XYZ 格式的欧拉角时:

  • 俯仰向上 <=> X 减小
  • 俯仰向下 <=> X 增加
  • 偏航右 <=> Y 增加
  • 偏航左 <=> Y 减少
  • 顺时针滚动 <=> Z 减少
  • 逆时针滚动 <=> Z 增加

所有证据似乎表明 Unity 欧拉角使用 LDB(左下后)坐标系,具有右手旋转和右手轴顺序。

然而,在处理四元数时,许多文献暗示使用左手系统。

这些文件说的是事实吗?如果是,那么在不同协议之间转换时会造成很多麻烦。这种分歧的目的是什么?

帖子版权声明 1、本帖标题:将大量数据从一台远程服务器传输到另一台远程服务器的最快方法是什么?
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由CugelTC在本站《ubuntu》版块原创发布, 转载请注明出处!
最新回复 (0)
  • Unity 使用左手坐标,Y 轴朝上。

    它应用欧拉角旋转“依次绕 z 轴、x 轴和 y 轴”。

    来自文档

  • Z、X、Y 轴分别代表右、后、上,如果将它们反转并重新映射,则会得到 LDB 坐标系,它仍然是右手坐标系(除非您使用左手坐标系来表示旋转,但这永远不会发生)

  • 我有一个运行着 500+GB 数据的远程服务器,我想转移到一个新的远程服务器,在它们之间传输数据的最快方法是什么?两者都运行着 ubuntu 20.04 和 22.04 LTS

    我有一个运行着 500+GB 数据的远程服务器,我想转移到一个新的远程服务器,在它们之间传输数据的最快方法是什么?两台服务器分别运行 ubuntu 20.04 和 22.04 LTS

    我曾尝试使用 scp,但它的峰值传输速度为 11MB/s,我正在寻找一种更快的传输速度的方法。

  • Rsync 是一个不错的选择,特别是当你想处理增量更新时,但如果这是一次性的事情,那么 sneakernet (

  • 在虚拟机 (Linux Ubuntu 22.10、Python 3.10.7) 上使用 pip 安装 jupyter 后,运行 jupyter notebook 时出现错误 File \'/home/username/.local/bin/jupyter-notebook\', line 5, in

    在虚拟机(Linux Ubuntu 22.10,Python 3.10.7)上 jupyter 安装 pip 后 jupyter notebook 出现错误

      File "/home/username/.local/bin/jupyter-notebook", line 5, in <module>
        from notebook.app import main
      File "/home/username/.local/lib/python3.10/site-packages/notebook/app.py", line 17, in <module>
        from jupyter_server.serverapp import flags
      File "/home/username/.local/lib/python3.10/site-packages/jupyter_server/serverapp.py", line 114, in <module>
        from jupyter_server.services.contents.filemanager import (
      File "/home/username/.local/lib/python3.10/site-packages/jupyter_server/services/contents/filemanager.py", line 23, in <module>
        from anyio.to_thread import run_sync
      File "/home/username/.local/lib/python3.10/site-packages/anyio/__init__.py", line 27, in <module>
        from ._core._sockets import connect_tcp as connect_tcp
      File "/home/username/.local/lib/python3.10/site-packages/anyio/_core/_sockets.py", line 35, in <module>
        from exceptiongroup import ExceptionGroup
      File "/home/username/.local/lib/python3.10/site-packages/exceptiongroup/__init__.py", line 20, in <module>
        from ._formatting import (
      File "/home/username/.local/lib/python3.10/site-packages/exceptiongroup/_formatting.py", line 394, in <module>
        assert sys.excepthook is apport_python_hook.apport_excepthook
    AssertionError
    

    我曾尝试过

    sys.excepthook = sys.__excepthook__
    

    如此处所述但这不会改变输出。我该如何解决这个问题?

  • 更新:

    经过进一步挖掘,似乎 VSCode 或 Ununtu(不确定是哪个)试图强制使用 sys.excepthook .

    简短回答:

    您只需 excepthook 用自定义 excepthook 覆盖 即可。然后, _formatting.py (由 调用 IPython ,由 调用 Jupyter )可以成功用 覆盖 sys.excepthook apport_python_hook.apport_excepthook 我怀疑)。

    正如 AldegarRızvan 回答 中所述 ,只需将此代码放在导入语句之前, Jupyter 它就可以工作:

    import sys
    
    def custom_exception_hook(exctype, value, traceback):
        # Your custom exception handling code here
        print(f"Exception Type: {exctype}\nValue: {value}")
    
    sys.excepthook = custom_exception_hook
    
    # Rest of the code
    

    注意:这仅适用于 Python 脚本,不适用于运行 Python 的活动终端。我怀疑终端 Python 会话已经是交互式的,因此您将遇到不同的问题。请参阅 原始答案 更多详细信息 ,以使其在终端中工作。

    更多细节:

    如上所述, Jupyter 似乎调用了 IPython 具有 _formatt在断言之前放入,g.py 代码行 assert sys.excepthook is apport_python_hook.apport_excepthook 调用 sys.excepthook = apport_python_hook.apport_excepthook in _formatting.py 那么 这也会起作用 。但这基本上与注释掉断言行相同。

    进一步检查 apport_python_hook.apport_excepthook ,我发现问题实际上发生在其中 if not likely_packaged(binary): 的一行, apport_python_hook.py 因为它检查我的工作目录是否以预定义的字符串列表开头:

    pkg_whitelist = [
        "/bin/",
        "/boot",
        "/etc/",
        "/initrd",
        "/lib",
        "/sbin/",
        "/opt",
        "/usr/",
        "/var",
    ]
    

    但是我从 \'/home/...\' 运行代码,而它不在该列表中。这会结束执行,只是返回任何内容,导致断言失败。但是,尝试将 \'/home\' 添加到此列表会导致一系列不同的问题。所以这也不起作用。

    注意:这意味着该问题实际上是某种 python3.10/ubuntu 22.10 问题,因为我可以通过导入 BaseExceptionGroup 来重新创建错误: from exceptiongroup import BaseExceptionGroup .

    上面提供的答案(简短答案)似乎是目前最优雅的解决方案。但是,这仅适用于在 Python 脚本中运行它的情况。如果正在运行 IPython Jupyter 原始答案 中所述 .


    原始答案:

    我的设置和错误和您一模一样。我找遍了所有地方,似乎找不到这个问题的任何其他痕迹。

    对 的依赖有关, Jupyter's 因为 IPython 在终端中 ipython --pylab 运行时,我得到了完全相同的错误 可以 直接进入 jupyter 终端,它确实会加载帮助页面。但是当我调用 时 jupyter --version ,它首先会说 Selected Jupyter core packages... 然后开始回溯。

    我发现的唯一“解决方案”是进入文件 _formatting.py 并注释掉 assert sys.excepthook is apport_python_hook.apport_excepthook 第 394 行。保存后,我能够启动一个交互式 shell IPython ,然后就可以 Jupyter 运行了。

    注意:注释掉该行后,我可以 jupyter --version 在终端中运行并查看输出内容:

    jupyter --version
    Selected Jupyter core packages...
    IPython          : 8.25.0 <---- NOTICE THIS?! (IPyhton package, not version)
    ipykernel        : 6.29.4
    ipywidgets       : 8.1.2
    jupyter_client   : 8.6.1
    jupyter_core     : 5.7.2
    jupyter_server   : 2.14.0
    jupyterlab       : 4.1.6
    nbclient         : 0.10.0
    nbconvert        : 7.16.3
    nbformat         : 5.10.4
    notebook         : 7.1.2
    qtconsole        : 5.5.1
    traitlets        : 5.14.2
    

    IPython 是第一个被调用的包,这进一步支持了我的理论,即问题不在于 Jupyter ,而是 IPython .

    我想强调的是,这个“解决方案”并不理想,我强烈建议要这样做,但它可能会帮助您/其他人进行故障排除。

  • 我需要包括。我看到它们(在 /usr/src/linux-headers-6.5.0-27/arch/x86/include/asm 中,但 cmake 没有看到。我尝试过:find_path(KERNELHEADERS_DIR incl...

    我需要包括 <asm/barrier.h> <asm/msr.h> 。我看到了它们( /usr/src/linux-headers-6.5.0-27/arch/x86/include/asm cmake 没有。我试过:

      find_path(KERNELHEADERS_DIR
        include/asm/barrier.h
      )
    

    ...和:

    execute_process(
      COMMAND uname -r
      OUTPUT_VARIABLE KERNEL_RELEASE
      OUTPUT_STRIP_TRAILING_WHITESPACE
    )
    
    string(REPLACE "-generic" "" KERNEL_RELEASE  "${KERNEL_RELEASE}")
    
    # Find the headers
    find_path(KERNELHEADERS_DIR
      include/asm/barrier.h
      PATHS /usr/src/linux-headers-${KERNEL_RELEASE}
    )
    

    ...及其变体,但它顽固地回归 /usr/src/linux-headers-6.5.0-28-generic .

    我不需要超级完整的解决方案,我只是需要它在 Ubuntu 上运行(它用于 YOMM2 的基准测试,而不是公开的、记录的东西)。

    帮助?

    [编辑]

    我按照@tsyvarev 的建议再次尝试,但它不起作用,即使我指定了标题的文字路径:

    $ ls -l /usr/src/linux-headers-6.5.0-27/arch/x86/include/asm/barrier.h
    -rw-r--r-- 1 root root 2939 Aug 27  2023 /usr/src/linux-headers-6.5.0-27/arch/x86/include/asm/barrier.h
    
    find_path(
      KERNEL_INCLUDE_DIR
      asm/barrier.h
      PATHS /usr/src/linux-headers-6.5.0-27/arch/x86
    )
    message(STATUS "KERNEL_INCLUDE_DIR = ${KERNEL_INCLUDE_DIR}")
    
    KERNEL_INCLUDE_DIR = KERNEL_INCLUDE_DIR-NOTFOUND
    
  • 因为我希望它能够在运行不同版本的 ubuntu 的不同机器上运行。没错,我可以使用第二个选项并跳过

  • 引用 10

    不要指望 CMake 可以在没有任何提示的情况下找到你的头文件。默认情况下,CMake 仅检查系统报告为包含头文件的目录

  • \'我按照@tsyvarev的建议再次尝试\' - 请重新阅读我的建议。在我之前的评论中,我建议使用

  • 我将 Java 版本升级到 17.0,并安装了 Android Studio Jellyfish 2023.3.1,下载了最新的 SDK 工具。结果,我注意到 sdkmanager 命令行不再出现 Error: A JNI er...

    我将 Java 版本升级到 17.0 并安装了 Android Studio Jellyfish 2023.3.1 ,下载了 SDK 工具 。因此,我注意到 sdkmanager 命令行不再

    Error: A JNI error has occurred, please check your installation and try again
    Exception in thread "main" java.lang.UnsupportedClassVersionError: com/android/sdklib/tool/sdkmanager/SdkManagerCli has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:473)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:621) 
    
  • 引用 13

    我有这个函数可以通过异步加载大量资产,我想在所有资产加载完成后调用 onComplete 操作,但目前考虑到异步的性质,我不确定如何

    我有这个函数可以通过异步加载许多资产,并且我想 onComplete 在所有资产加载完成后调用操作,但目前考虑到异步的性质,我不确定如何让我的函数做到这一点,因为我对异步编程还比较陌生。

    public void Load(Action onComplete)
    {
        foreach (var kvp in _db)
        {
            var key = kvp.Key;
            var assetRef = kvp.Value;
            assetRef.LoadAssetAsync<TAsset>().Completed += handle =>
            {
                if (handle.Status == AsyncOperationStatus.Succeeded)
                    _loadedAssets.Add(key, handle.Result);
    
                //check if all assets have been loaded and then call onComplete
            };
        }
    }
    
  • 引用 14

    @OlivierJacot-Descombes 但这样会为加载的每个资产多次调用 onComplete。我想做的是,我想在 _db 字典中加载 10 个资产,我想在所有 10 个资产加载完成后调用 onComplete。

  • 您应该使用 Microsoft 的 Reactive Framework(又名 Rx)-NuGet System.Reactive 并添加 using System.Reactive.Linq; - 然后您可以执行以下操作:

    public void Load2(Action onComplete)
    {
        (
            from kvp in _db.ToObservable()
            let key = kvp.Key
            let assetRef = kvp.Value
            let assetLoader = assetRef.LoadAssetAsync<TAsset>()
            from handle in
                Observable
                    .FromEvent<Action<AssetHandle>, AssetHandle>(
                        h => assetLoader.Completed += h,
                        h => assetLoader.Completed -= h)
                    .Take(1)
            where handle.Status == AsyncOperationStatus.Succeeded
            select new { key, handle.Result }
        )
            .Subscribe(
                x => _loadedAssets.Add(x.key, x.Result),
                () => onComplete());
    }
    

    现在,这应该可以了。我不得不对某些类型进行逆向工程,但我想我已经解决了。竞争条件仍然存在于您的代码中。

返回
作者最近主题: