首页 文章
  • 10 votes
     answers
     views

    如何从“Box”中获取自有值?

    这个函数的实现是什么: fn unbox<T>(value: Box<T>) -> T { // ??? } 文档中唯一看起来像我想要的函数是 Box::into_raw . 以下将进行类型检查: fn unbox<T>(value: Box<T>) -> T { *value.into_raw() } 这给出了错误...
  • 11 votes
     answers
     views

    使用sun.misc.Unsafe,从Direct ByteBuffer扫描字节的最快方法是什么?

    BACKGROUND 假设我有一个直接的ByteBuffer: ByteBuffer directBuffer = ByteBuffer.allocateDirect(1024); 并假设我正在将缓冲区传递给AsynchronousSocketChannel以从该套接字读取数据块,一次最多X个字节(此处示例中为1024) . 从套接字到 direct ByteBuffer的传输时间非常棒,因为...
  • 2 votes
     answers
     views

    检测图像中的峰值

    我收到了大量的种子红外图像,它们的大小略有不同 . 我想找到它们(以最快的方式) . 下面我展示了我处理的图像的放大细节 . 在第一次去除噪音和blob过滤器后,这就是我所拥有的: 明亮的白色只是红外灯的直接反射,白色像素永远不会在多个种子上组合(伸展) . 为了更清楚,我在一些个别种子上写了一封信 . 我遇到的问题: A是单个种子(种子上的污垢)会产生轻微的暗线 . B靠近它的附近X是...
  • 2 votes
     answers
     views

    为什么允许从函数中返回不安全的指针?

    我最近看到了几个实际上这样做的开源项目;从函数返回一个不安全的指针,例如:“int * input = this.someIterator.GetUnsafePtr()” . 从我的理解,这必须是完全错误的 . 不安全的指针只能通过“固定”语句获得,当然,从函数中返回的指针不再被固定(它们将“丢失”它们的声明范围),导致它们最终被垃圾收集 . 但是后来我不记得编译器对此提出任何警告,那么为什么还要...
  • 6 votes
     answers
     views

    为什么不能在迭代器上下文中使用unsafe关键字?

    在看这个问题时,Jon在关闭之前做了很好的工作......'How to read a text file reversly with iterator '. And there was a similar question in which I answered using pointers hocus pocus..' .net is there a way to read a text fi...
  • 1 votes
     answers
     views

    解释器的堆可以以某种方式比使用向量更有效地实现吗?

    我正在Rust中编写一个解释器,用于特定于域的语言,该语言应该允许高性能的实现 . 堆的相关属性是: 程序很短(但很多都是执行的) 我知道,在执行开始之前,需要的最大内存量 所需的内存很小 在程序终止之前不需要取消分配 创建后,所有数据都是不可变的 语言是静态类型检查的,因此没有访问未初始化内存的风险 语言是单线程的,因此没有共享内存 我在堆中的元素有一个固定的结构...
  • 0 votes
     answers
     views

    如何在Rust中执行高效的向量初始化?

    在Rust中填充结构向量的好方法是: 大小是动态的,但在初始化时已知 . 不首先将内存初始化为虚拟值 . 不重新分配内存作为填充内存 . 在此示例中,始终初始化向量的所有成员 .(符合Rusts保证没有未定义的行为) . 理想情况下 不索引检查每个索引访问(因为在声明向量时已知大小,这应该是可能的) . 不需要 unsafe(不确定这是否合理,但编译器_could_检测...

热门问题