D语言

D语言中的Cortex-M4系列中断向量表处理

本秂侑毒 提交于 2021-02-06 12:36:48
D语言中的Cortex-M4系列中断向量表处理 向量表: 在mculib4d中的定义方式 向量表: // form file:stm32f401xc.h struct IRQn_Type { /****** Cortex-M4 Processor Exceptions Numbers ****************************************************************/ Reset_IRQn = - 15 , NonMaskableInt_IRQn = - 14 , /*!< 2 Non Maskable Interrupt */ MemoryManagement_IRQn = - 12 , /*!< 4 Cortex-M4 Memory Management Interrupt */ BusFault_IRQn = - 11 , /*!< 5 Cortex-M4 Bus Fault Interrupt */ UsageFault_IRQn = - 10 , /*!< 6 Cortex-M4 Usage Fault Interrupt */ SVCall_IRQn = - 5 , /*!< 11 Cortex-M4 SV Call Interrupt */ DebugMonitor_IRQn = - 4 , /*!< 12 Cortex

golang vs dlang vs nodejs vs php 性能对比较量

本秂侑毒 提交于 2019-12-03 18:35:52
这是我本机开的一个单核1G内存的Hyper-V虚拟机,首先我们使用的语言和框架版本给大家看一下: root@kerisy:/home/zoujiaqing# go version go version go1.5.1 linux/amd64 root@kerisy:/home/zoujiaqing# ldc2 --version LDC - the LLVM D compiler (0.15.0): based on DMD v2.066.1 and LLVM 3.5.0 Default target: x86_64-pc-linux-gnu Host CPU: core-avx2 http://dlang.org - http://wiki.dlang.org/LDC Registered Targets: aarch64 - AArch64 (little endian) aarch64_be - AArch64 (big endian) arm - ARM arm64 - AArch64 (little endian) arm64_be - AArch64 (big endian) armeb - ARM (big endian) cpp - C++ backend hexagon - Hexagon mips - Mips mips64 - Mips64

D语言(Dlang)ORM

眉间皱痕 提交于 2019-12-03 09:47:20
前言 为了让Dlang像 Java / PHP / C# 一样具有非常好的数据库操作体验,我们了解了 PDO、JDBC、HIBERNATE、ADO.NET,最终发现大家的设计都不是很统一,只有 Java 最新的持久化标准 JPA 是真正的具有可移植性,所以我们准备自己实现一套 JPA 机制,命名为 dlang-entity。 分析 分析的时候发现 dlang 官方没有任何标准的数据库操作接口,也就是像 PDO / JDBC / ADO.NET 这样的东东都不存在…… 继续分析发现上层还有 SQL BUILDER ,最上层还有 Entity 的一系列管理,最终我们把 ORM 分成了 4 个层,分别是 Database / DBAL / CriteriaQuery/ Entity 层次功能 Database 负责基础的数据库访问,接收 SQL 语句,类似于 PDO、JDBC、ADO.NET; DBAL 负责实现 SQL BUILDER,依赖 Database; CriteriaQuery 是调用 DBAL 层,和 Entity 的实体进行关系绑定; Entity 见名之意就是实体,下面依赖 DBAL 和 CriteriaQuery。 难点分析 上面的架构是分层实现,但是对于功能来说是从外而内,Database 和 Entity 是同步设计的,目前参考了 JPA 的接口设计

如何用eql语句对数据库进行操作

流过昼夜 提交于 2019-11-29 00:25:39
用eql语句对数据库进行查询 string sql = " SELECT * FROM XX x"; string[] wheres; if(c.length)//(string类型) { wheres ~= "x.c '%" ~ c ~ "%'";//%"~ ~"%用来拼接字符串 } if (z) { wheres ~= "x.z = :z"; } if (wheres.length > 0) { sql ~= " WHERE "; for (int i = 0; i < wheres.length; i++) { if (i > 0) { sql ~= " AND "; } sql ~= wheres[i]; } } sql ~= " ORDER BY x.created DESC(ASC)";//这部分是查询出来的条件按照创建时间来排序,可以根据需求来更换字段(DESC是倒序,ASC是正序) auto query = _manager.createQuery!(XX)(sql, new pageable(page-1, limit)); query.setParameter("c",c); query.setParameter("z",z); return query.getPageResult; 用eql语句对数据库信息进行修改 下面是对修改操作的示例 auto temp1