ICode9

精准搜索请尝试: 精确搜索
  • c# – *(decimal *)d = XXXm导致另一个输出比BinaryWriter.Write(XXXm)2019-07-01 09:52:29

    我正在为自己的学习目的编写一个优化的二进制读取器/写入器.一切正常,直到我为小数的编码和解码编写测试.我的测试还包括.NET Framework的BinaryWriter是否为我的BinaryWriter生成兼容的输出,反之亦然. 我主要使用unsafe和指针将变量写入字节数组.当通过指针和BinaryWriter写小数时

  • C# – 固定/内联数组2019-06-30 13:04:41

    我正在用C#编写一个B -tree实现,我为我的应用程序选择的树实现有一个非常特定的结构,它具有缓存意识.要实现这些属性,它在树节点上具有严格的布局策略. 我想要的只是使用C#的fixed关键字表示固定大小的缓冲区: public abstract class Tree<K, T> { } sealed class Node<K, T> : Tre

  • volatile用于指针的C#(DotNet Core)读/写2019-06-22 07:53:18

    平台:Linux上的DotNet Core 2 C#指针解引用是不稳定的还是如何使其易变? 我们的团队正在研究一些需要超低延迟的疯狂东西,但仍需要用C#编写.我们需要从共享内存中获取尽可能低延迟的价值,我们将忙于等待. 因此,指向共享内存的指针是我可以成像的最快方式.但真正关心JIT会尝试缓存价值

  • C#中unsafe的使用2019-06-11 13:53:53

    1. unsafe在C#程序中的使用场合: 1)实时应用,采用指针来提高性能; 2)引用非.net DLL提供的如C++编写的外部函数,需要指针来传递该函数; 3)调试,用以检测程序在运行过程中的内存使用状况。 2. 使用unsafe的利弊 好处是:性能和灵活性提高;可以调用其他dll的函数,提高了兼容性;可以得到内存地址; 带来

  • 错误: error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_2019-06-07 20:02:52

    错误: error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. 的处理方法   为什么会报这个错?因为strcpy这个函数不安全,即会造成栈溢出。 在VS2013下如果使用strcpy有时候会报这个错误,解决方法是找到该项目的属性:     在预处

  • 深度解密Go语言之unsafe2019-06-04 13:01:54

    深度解密Go语言之unsafe 限制一:Go的指针不能进行数学运算。 来看一个简单的例子: a := 5p := &a p++p = &a + 3 上面的代码将不能通过编译,会报编译错误:invalid operation,也就是说不能对指针做数学运算。 限制二:不同类型的指针不能相互转换。 例如下面这个简短的例子: func main() {

  • 使用不安全的C#代码可以破坏或混淆字符串池吗?2019-05-29 12:54:10

    如果我通过在不安全的代码块或方法中使用指针来操作托管的C#字符串(例如,反转其字符),那么不安全的实现是否会混淆或破坏.NET字符串池机制? 正在操作的建议字符串是在托管代码中创建的,并传递给不安全的方法进行操作. 此方案的示例: static void Main(string[] args) { string s

  • tengine报错 Nginx: unsafe URI detected while sending response2019-05-29 11:03:09

    Nginx: unsafe URI detected while sending response现象:# 类似 <!--#include virtual="../library/header.html"--><div id="blog"> html语法无法解析,导致网站头部尾部不能正常展示<!--#include virtual="library/header.html"--> 可以解析没有问题# 代码片段&

  • c# – Marshal.SizeOf和sizeof之间的区别,我只是不明白2019-05-27 09:56:14

    到目前为止,我刚刚理所当然地认为Marshal.SizeOf是计算非托管堆上blittable结构的内存大小的正确方法(这似乎是SO上的共识,几乎是网络上的其他地方). 但在阅读了一些针对Marshal.SizeOf的警告之后(this article之后“但是有问题……”)我试了一下,现在我完全糊涂了: public struct

  • c# – 如果抛出异常,“固定”是否可以正确清理?2019-05-27 09:54:57

    我假设fixed的实现类似于using / try..finally,因为如果块提前终止(通过返回或抛出异常),指针会被正确清理(“不固定”以便GC可以完成其工作再次). 但是,我没有在fixed documentation中看到这样的保证,所以我想知道某处是否存在某种形式的官方保证,或者我是否应该在每个固定区块中

  • Java基础之CAS深入解析2019-05-26 21:51:48

    Java基础之CAS深入解析 目录: CAS是什么 CAS底层原理Unsafe深入解析 CAS缺点 引子:蚂蚁花呗一面:讲一讲AtomicInteger,为什么要用CAS而不是synchronized? 1. CAS是什么 CAS的全称为Compare-And-Swap,它是一条CPU并发原语。 它的功能是判断内存某个位置的值是否为期望值

  • 使用Unsafe来实现自定义锁2019-05-24 18:41:57

    1.使用Unsafe类 import sun.misc.Unsafe;class UnsafePackage { private static Unsafe unsafe; static { try { Class<Unsafe> unsafeClass = Unsafe.class; Field theUnsafe = unsafeClass.getDeclaredField("theUnsafe")

  • c# – XOR链表2019-05-21 21:05:45

    我最近遇到了下面的链接,我发现它非常有趣. http://en.wikipedia.org/wiki/XOR_linked_list >通用调试工具 不能跟随XOR链,制作调试比较困难; [1]>内存减少的代价用法是代码的增加复杂性,使维护更多昂贵;>大多数垃圾收集计划都有不能使用数据结构不包含文字指针;>指针的XOR未定义一

  • c# – 将字符串文字分配给char *2019-05-19 20:01:56

    只是搞乱c#的不安全方面 unsafe { char* m = stackalloc char[3+1]; m[0] = 'A'; m[1] = 'B'; m[2] = 'C'; m[3] = '\0'; for (char* c = m; *c != '\0'; c++) { Console.WriteLine(*c); }

  • c# – 如何确保T可以按固定的字节数进行序列化?2019-05-18 10:56:04

    我正在写一个通用的DataStructure< T>它保留在磁盘上,我需要编写它,以确保T可以在固定的字节数中序列化.例如,应该接受int和char,但不应该使用string或int [].同样,带有字符串成员的结构是不可接受的,但是带有固定char数组的不安全结构是. 我可以使用reflection和sizeof在初始化程

  • Unsafe API介绍及其使用2019-05-08 20:41:36

        废话   个人理解:java 出现的原因之一,就是对内存的管理;在c/c++,内存可以随心使用,超高的性能也伴有极高的风险;java极大的规避了这种风险,却也降低了程序运行的性能;那么java是否提供直接操作内存的方法呢?当然:Unsafe 类就是java提供的,对系统硬件级别的底层操作; 1,Unsafe

  • Java并发编程基础-Unsafe2019-05-08 20:40:34

    前言:Unsafe是Java中一个底层类,包含了很多基础的操作,比如数组操作、对象操作、内存操作、CAS操作、线程(park)操作、栅栏(Fence)操作,JUC包、一些三方框架都使用Unsafe类来保证并发安全。 介绍: 获取Unsafe对象Unsafe构造方法为私有,虽然提供了一个getUnsafe静态方法,但会判断加载这个类

  • 杂谈 论实例化类的第六种方式2019-05-07 23:55:18

    你知道几种实例化一个类的方式? new?反射?还有呢? 笔者总结了一下大概有以下六种方式: (1)通过构造方法实例化一个类; (2)通过Class实例化一个类; (3)通过反射实例化一个类; (4)通过克隆实例化一个类; (5)通过反序列化实例化一个类; (6)通过Unsafe实例化一个类; Let us 直接上代码: public class Instantial

  • sun.misc.Unsafe2019-05-07 17:51:21

    sun.misc.Unsafe是jdk中为了方便使用java语言灵活操作内存预留的类,由于该类是直接操作内存,所以从java的角度被定义为不安全的,也就是类名的由来。 经常分析jdk源码的同学肯定不陌生,因为jdk中很多地方都用到了这个类。 创建实例:、 sun.misc.Unsafe UNSAFE = sun.misc.Unsafe.getUnsaf

  • 深入理解(7)Java无锁CAS与Unsafe类及其并发包Atomic2019-05-01 10:51:37

    原文:https://blog.csdn.net/javazejian/article/details/72772461 无锁的概念 在谈论无锁概念时,总会关联起乐观派与悲观派,对于乐观派而言,他们认为事情总会往好的方向发展,总是认为坏的情况发生的概率特别小,可以无所顾忌地做事,但对于悲观派而已,他们总会认为发展事态如果不及

  • JDK Unsafe 源码完全注释2019-04-25 14:55:49

    并发作为 Java 中非常重要的一部分,其内部大量使用了 Unsafe 类,它为 java.util.concurrent 包中的类提供了底层支持。然而 Unsafe 并不是 JDK 的标准,它是 Sun 的内部实现,存在于 sun.misc 包中,在 Oracle 发行的 JDK 中并不包含其源代码。Unsafe 提供两个功能:绕过 JVM 直接修改内存(对

  • Channel和Unsafe2019-04-15 16:49:51

    类似于NIO的 Channel,Netty提供了自己的 Channel和其子类实现,用于异步I/O操作和其他相关的操作。 Unsafe是个内部接口,聚合在 Channel中协助进行网络读写相关的操作,因为它的设计初衷就是 Channel的内部辅助类,不应该被Netty框架的上层使用者调用,所以被命名为 Unsafe。这里

  • CAS (Compare and Swap)2019-04-09 16:43:27

    synchronized是悲观锁 注意:实现了CAS的有原子类(AtomicInteger,AtomicLong,等等原子类)   CAS 是乐观锁,一种高效实现线程安全性的方法   1、支持原子更新操作,适用于计数器,序列发生器等场景   2、属于乐观锁机制,号称lock-free   3、CAS操作失败时由开发者决定是就行尝试,还是执行

  • 转载:java中的CAS2019-04-09 14:41:15

    本篇的思路是先阐明无锁执行者CAS的核心算法原理然后分析Java执行CAS的实践者Unsafe类,该类中的方法都是native修饰的,因此我们会以说明方法作用为主介绍Unsafe类,最后再介绍并发包中的Atomic系统使用CAS原理实现的并发类。   无锁的概念         在谈论无锁概念时,总会关联起乐观

  • 不安全代码2019-03-06 22:52:45

    第一次使用unsafe: 为什么会出现按这种情况?   因为C#中的unsafe是用来声明不安全代码,所以编译不通过。(当然,所谓的不安全只是对于我这种渣渣来说的)。 使用unsafe的好处就是:可以想C++那样使用指针来提高性能;还有就是查看内存状况,例如简单点的就是查看指针。 不好的就是:最严重的

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有