首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏技术小黑屋

    Kotlin编译与Intrinsics检查

    (message, "message"); Intrinsics 是什么 Intrinsics是Kotlin内部的一个类 包含了检查参数是否为null的checkParameterIsNotNull 包含了表达式结果是否为 为什么会有Intrinsics等判断代码呢 不是说 Kotlin 是空指针安全,有可空(Any?) 避免不必要的状态产生 Intrinsics的问题 刚才我们提到了Intrinsics可以辅助混淆情况下定位排查问题,但是同时也带来了一个问题,那就是 为混淆之后逆向工程提供了更多的帮助。 除此之外,还有人担心Intrinsics是不是存在这样的问题 Intrinsics调用和返回带来进栈出栈操作,而Intrinsics为java实现,无法在编译时inline,会不会有性能问题 对于性能的担忧可以说是有些过于杞人忧天了 { val book: Book = JavaUtil.getBook() book.name } Intrinsics.throwNpe 当使用!!

    1.9K20发布于 2020-01-21
  • 来自专栏贾志刚-OpenCV学堂

    使用OpenCV中的universal intrinsics为算法提速 (2)

    ---- OpenCV 4.x中提供了强大的统一向量指令(universal intrinsics),使用这些指令可以方便地为算法提速。所有的计算密集型任务皆可使用这套指令加速,非计算机视觉算法也可。 前序文章:使用OpenCV中的universal intrinsics为算法提速 (1) 前序文章介绍了怎么编写C语言代码使用OpenCV中的universal intrinsics来加速。 只是写C代码还是不够的,universal intrinsics的使用依赖编译器的选项。 hello.cpp: (代码较宽,建议横屏阅读) #include <stdio.h> #include <opencv2/opencv.hpp> #include <opencv2/core/simd_intrinsics.hpp

    2.8K11发布于 2020-02-21
  • 来自专栏GiantPandaCV

    ARM Neon Intrinsics 学习指北:从入门、进阶到学个通透

    Intrinsics命名规则还是比较复杂的(如下图),如果没弄清楚,后期可能会检索不到需要的intrinsics或误用intrinsics。 ? Intrinsics命名规则 1.2 如何检索Intrinsics 在1.1了解改写方法后,将自己的代码用相应的Intrinsics改写,即可应用Neon加速。 对于这种情况,只能放弃使用这条intrinsics,改用多条intrinsics拼凑出等效实现(指令数的增加意味着性能的降低,为了兼容性这是无可奈何的事情)。 Intrinsics优化和Assembly优化分别加速了约38%和约52%,Intrinsics优化生成的代码还和手工优化的Assembly存在差距。 原因我们上文提到过,有的intrinsics是较新Aarch64架构下专有的,为了兼容较老的ArmV7a架构,对于不能用的intrinsics只能用多条兼容的intrinsics等效替代。

    5.6K41发布于 2021-04-16
  • 来自专栏嵌入式学习

    关于iar intrinsics.h is already included previously!报错的问题及解决办法

    用最新的cubemx生成f103的代码(带freertos系统),如果用iar编译,可能会出现intrinsics.h is already included previously!

    79120发布于 2020-09-07
  • 来自专栏c++ 学习分享

    如何在各个版本的VC及64位下使用CPUID指令

    一、推荐使用__cpuid、__cpuidex等Intrinsics函数   在32位模式下,我们可以使用内嵌汇编来调用cpuid指令。但在64位模式下,VC编译器不支持内嵌汇编。    于是微软提供了Intrinsics函数——编译器会将Intrinsics函数编译为对应的机器指令,而且同时支持32位和64位。    例如CPUID指令的对应Intrinsics函数是—— // http://msdn.microsoft.com/en-us/library/hskdteyh.aspx void __cpuid( 二、用条件编译判断VC编译器对Intrinsics函数的支持性(_MSC_VER)   在__cpuid、__cpuidex等Intrinsics函数时,会遇到以下问题—— 1.低版本的VC编译器没有 应使用__cpuid、__cpuidex等Intrinsics函数。 #else #if _MSC_VER < 1600 // VS2010.

    1.6K10编辑于 2023-07-06
  • 来自专栏技术小黑屋

    一个查找字节码更好研究Kotlin的脚本

    比如这样的代码 1 2 3 fun String.toConsole() { println(this) } Kotlin的编译器会在字节码中自动地增加这样一行代码Intrinsics.checkParameterIsNotNull 痛点 那么问题来了,如果我们想找出所有的关于Intrinsics相关的自动加入内容,该怎么办,不能一个一个文件去反编译查看吧,因为这样 没有目标性,无法明确预知那个文件会生成这种代码 不具有自动化可重复性 ,需要依赖于人为行为 那么,我们查看class文件类进行内容匹配是否包含Intrinsics呢,其实也不太好,因为一个class文件的内容是这样的 1 2 3 4 5 6 7 8 9 10 11 12 toConsole(Ljava/lang/String;)V#Lorg/jetbrains/annotations/NotNull;$this$toConsokotlin/jvm/internal/Intrinsics " /tmp/result.txt searchBytecode.rb 是上述的脚本文件名称 ./ 第一个参数,为待查找的目录 “Intrinsics” 第二个参数,为查询关键字 /tmp/result.txt

    75510发布于 2020-01-23
  • 来自专栏贾志刚-OpenCV学堂

    使用OpenCV4的统一向量指令实现硬件级别加速之三

    OpenCV 4.x中提供了强大的统一向量指令(universal intrinsics),使用这些指令可以方便地为算法提速。所有的计算密集型任务皆可使用这套指令加速,非计算机视觉算法也可。 前序文章: 使用OpenCV中的universal intrinsics为算法提速 (1) 使用OpenCV中的universal intrinsics为算法提速 (2) 前序文章1介绍了怎么编写C 语言代码使用OpenCV中的universal intrinsics来加速;文章2介绍了编译器的选项。 ---- 本文使用一个向量点乘的例子,来展示universal intrinsics的的提速。 我们有两个向量vec1和vec2,将对应元素相乘,然后累加起来。 从两个函数的耗时可以看出,采用OpenCV的universal intrinsics后耗时仅为一半,速度翻倍。 两个例程的完整源代码如下。

    1.5K30发布于 2020-02-20
  • 来自专栏云深之无迹

    实现一个抽帧算法+双目相机原理

    align.process(frames) # 获得相机内参 # profile = aligned_frames.get_profile() #intrinsics = profile.as_video_stream_profile().get_intrinsics() # pinhole_camera_intrinsic = o3d.camera.PinholeCameraIntrinsic ( # intrinsics.width, intrinsics.height, intrinsics.fx, intrinsics.fy, intrinsics.ppx, intrinsics.ppy) # 获得对齐的帧 depth_frame = aligned_frames.get_depth_frame()

    1.2K30编辑于 2022-04-15
  • 来自专栏云上修行

    基于RealSense深度相机和YOLO的杯子3D定位技术解析

    = color_profile.get_intrinsics() # 像素坐标 → 相机坐标系转换 x = (center_x - intrinsics.ppx) / intrinsics.fx * depth y = (center_y - intrinsics.ppy) / intrinsics.fy * depth z = depth return (x, y, = color_profile.get_intrinsics() # 6. 将像素坐标转换为相机坐标 x = (center_x - intrinsics.ppx) / intrinsics.fx * depth y = (center_y - intrinsics.ppy ) / intrinsics.fy * depth z = depth return (x, y, z) def visualize(self,

    1.8K10编辑于 2025-07-21
  • 来自专栏ppjun专栏

    lateinit var 和var 区别

    public final String getAa() { String var10000 = this.aa; if (this.aa == null) { Intrinsics.throwUninitializedPropertyAccessException aa"); } return var10000; } public final void setAa(@NotNull String var1) { Intrinsics.checkParameterIsNotNull public final class Test { public final void Apple(int $receiver, @NotNull String apple) { Intrinsics.checkParameterIsNotNull

    2K20发布于 2018-09-05
  • 来自专栏韩曙亮的移动开发专栏

    【Kotlin】函数 ⑦ ( 内联函数 | Lambda 表达式弊端 | “ 内联 “ 机制避免内存开销 - 将使用 Lambda 表达式作为参数的函数定义为内联函数 | 内联函数本质 - 宏替换 )

    代码内容如下 : import kotlin.Metadata; import kotlin.jvm.functions.Function2; import kotlin.jvm.internal.Intrinsics static final void studentDoSomething(@NotNull String name, int age, @NotNull Function2 action) { Intrinsics.checkParameterIsNotNull (name, "name"); Intrinsics.checkParameterIsNotNull(action, "action"); String act = (String 代码内容如下 : import kotlin.Metadata; import kotlin.jvm.functions.Function2; import kotlin.jvm.internal.Intrinsics (name, "name"); Intrinsics.checkParameterIsNotNull(action, "action"); String act = (String

    2.1K10编辑于 2023-03-30
  • 来自专栏10km的专栏

    msc和gcc编译器的内置函数(Compiler Intrinsics/Built-in Functions)

    msc的内置函数叫Compiler Intrinsics,相关文档在这里 Compiler Intrinsics(点击打开链接) gcc的内置函数叫Built-in Functions,相关的文档在这里 -31或0-63), 如果输入参数为0,则返回-1 #ifdef _MSC_VER #include <intrin.h>//需要加入这个头文件 //msc 编译时使用内建函数(Compiler Intrinsics

    65120编辑于 2022-05-07
  • 来自专栏韩曙亮的移动开发专栏

    【错误记录】Kotlin 代码编译时报错 ( Variable ‘name‘ must be initialized | 初始化块定义在所有属性之后 )

    String[] var0) { main(); } } // Hello.java import kotlin.Metadata; import kotlin.jvm.internal.Intrinsics getName() { return this.name; } public final void setName(@NotNull String var1) { Intrinsics.checkNotNullParameter String[] var0) { main(); } } // Hello.java import kotlin.Metadata; import kotlin.jvm.internal.Intrinsics getName() { return this.name; } public final void setName(@NotNull String var1) { Intrinsics.checkNotNullParameter getName() { return this.name; } public final void setName(@NotNull String var1) { Intrinsics.checkNotNullParameter

    1.3K20编辑于 2023-03-30
  • 来自专栏程序亦非猿

    Kotlin干掉了findViewById,但用不好也会有性能问题

    _$_findCachedViewById(id.tvName); Intrinsics.checkExpressionValueIsNotNull(var10000, "tvName"); @Nullable public View onCreateView(//**...*/) { Intrinsics.checkParameterIsNotNull(inflater, "inflater "); View view = inflater.inflate(2130968608, container, false); Intrinsics.checkExpressionValueIsNotNull (view, "view"); TextView var10000 = (TextView)view.findViewById(id.tvName); Intrinsics.checkExpressionValueIsNotNull (view, "view"); TextView var10000 = (TextView)view.findViewById(id.tvName); Intrinsics.checkExpressionValueIsNotNull

    3K10发布于 2019-10-28
  • 来自专栏一个会写诗的程序员的博客

    《Kotlin 程序设计》第四章 Kotlin 语法基础

    ;)V ALOAD 2 ASTORE 4 L8 ALOAD 4 ACONST_NULL INVOKESTATIC kotlin/jvm/internal/Intrinsics.areEqual 2 ALOAD 2 ASTORE 3 L14 ALOAD 3 ACONST_NULL INVOKESTATIC kotlin/jvm/internal/Intrinsics.areEqual )V ALOAD 2 ASTORE 4 L17 ALOAD 4 ACONST_NULL INVOKESTATIC kotlin/jvm/internal/Intrinsics.areEqual 然后调用 INVOKESTATIC kotlin/jvm/internal/Intrinsics.areEqual (Ljava/lang/Object;Ljava/lang/Object;)Z 这里的 kotlin/jvm/internal/Intrinsics.areEqual (Ljava/lang/Object;Ljava/lang/Object;)函数代码是: public static

    1.8K20发布于 2018-08-17
  • 来自专栏OpenCV与AI深度学习

    OpenCV图像拼接终章--Stitching detailed使用与参数介绍

    Finding features, time: 5.46377 sec Pairwise matchingPairwise matching, time: 3.24159 sec Initial camera intrinsics 1.1678253; 0.0034433089, 1.0835428, -0.025021957; 0.28152198, 0.16100603, 0.91920781] Initial camera intrinsics 0.085758291, -0.64530683; 0.010103324, 1.0520245, -0.030576767; 0.15743911, 0.12035993, 1] Initial camera intrinsics 0.75133896; -0.0014587968, 0.92028928, 0.033205934; -0.17483309, 0.018777205, 0.84592116] Initial camera intrinsics 1.2121853; -0.014153662, 0.85474133, 0.014057174; -0.29529575, 0.053770453, 0.61932623] Initial camera intrinsics

    6.2K40发布于 2020-10-29
  • 来自专栏HikariLan's Blog

    有关 Kotlin 具名参数形参传参顺序导致输出结果发生改变问题的一些探索

    STATIC FINAL main([Ljava/lang/String; args)V A: ALOAD args LDC "args" INVOKESTATIC kotlin/jvm/internal/Intrinsics.checkNotNullParameter Decompiled with: FernFlower // Class Version: 8 import kotlin.Metadata; import kotlin.jvm.internal.Intrinsics } ) public final class MainKt { public static final void main(@NotNull String[] args) { Intrinsics.checkNotNullParameter Decompiler 的时候,得到了非常诡异的结果: // Decompiled with: Procyon 0.6.0 // Class Version: 8 import kotlin.jvm.internal.Intrinsics public final class MainKt { public static final void main(@NotNull final String[] args) { Intrinsics.checkNotNullParameter

    91520编辑于 2022-10-27
  • 来自专栏韩曙亮的移动开发专栏

    【Kotlin】类的初始化 ③ ( init 初始化块 | 初始化顺序 : 主构造函数属性赋值 -> 类属性赋值 -> init 初始化块代码 -> 次构造函数代码 )

    String[] var0) { main(); } } // Hello.java import kotlin.Metadata; import kotlin.jvm.internal.Intrinsics getType() { return this.type; } public final void setType(@NotNull String var1) { Intrinsics.checkNotNullParameter getName() { return this.name; } public final void setName(@NotNull String var1) { Intrinsics.checkNotNullParameter >"); this.name = var1; } public Hello(@NotNull String name, int _age) { Intrinsics.checkNotNullParameter ; this.type = "猫"; } } 重点分析 构造函数 : public Hello(@NotNull String name, int _age) { Intrinsics.checkNotNullParameter

    3.6K30编辑于 2023-03-30
  • 来自专栏Android知识

    使用kotlinc、kotlin、java命令进行kotlin程序运行

    workspace>java HelloKt Exception in thread "main" java.lang.NoClassDefFoundError: kotlin/jvm/internal/Intrinsics         at HelloKt.main(hello.kt) Caused by: java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics

    1.7K20编辑于 2022-02-07
  • 来自专栏韩曙亮的移动开发专栏

    【Kotlin】常用的 Kotlin 类 ① ( 嵌套类 | 数据类 | 数据类 copy 函数 | 数据类解构声明 operator fun component1 | 数据类运算符重载 )

    Student 数据类 中的 equals 和 hashCode 函数 ; // Student.java import kotlin.Metadata; import kotlin.jvm.internal.Intrinsics getName() { return this.name; } public final void setName(@NotNull String var1) { Intrinsics.checkNotNullParameter { if (var1 instanceof Student) { Student var2 = (Student)var1; if (Intrinsics.areEqual Java 代码数据 , 反编译后的 Java 代码数据如下 : // Student.java import kotlin.Metadata; import kotlin.jvm.internal.Intrinsics { if (var1 instanceof Student) { Student var2 = (Student)var1; if (Intrinsics.areEqual

    1.4K20编辑于 2023-03-30
领券