- 博客(39)
- 资源 (45)
- 问答 (15)
- 收藏
- 关注
原创 【java】Windows安装JAVA设置环境变量|windows环境变量
原文:https://www.cnblogs.com/fklin/p/6670760.html文件名称:jdk-7u51-windows-x64下载Windows 64位平台的JDK安装文件。绿色包下载地址:https://www.cnblogs.com/for-easy-fast/p/12300535.html安装1.双击打开下载好的文件,点击“下一步”开始安装。2. ①默认选择安装全部功能,不做调整。 ②默认安装路径,不做调整3.点“下一步”等到安装完...
2021-01-29 17:12:44 610
原创 【内存】TLB缓存是个神马鬼,如何查看TLB miss?
原文:https://blog.csdn.net/zhangyanfei01/article/details/100053533介绍TLB之前,我们先来回顾一个操作系统里的基本概念,虚拟内存。虚拟内存在用户的视角里,每个进程都有自己独立的地址空间,A进程的4GB和B进程4GB是完全独立不相关的,他们看到的都是操作系统虚拟出来的地址空间。但是呢,虚拟地址最终还是要落在实际内存的物理地址上进行操作的。操作系统就会通过页表的机制来实现进程的虚拟地址到物理地址的翻译工作。其中每一页的大小都是固定的。这一
2021-01-29 14:22:03 1128
原创 【性能】Linux 页表、透明大页|大页内存|TLB和大页测试工具和指令
页表与MMUCPU访问的是什么地址(虚拟地址,物理地址)?其实CPU根本不关心它访问的是什么地址,它只访问一个地址,然后从数据线上获取数据。启用MMU时,CPU访问地址是向MMU发送地址,然后从MMU获得数据,虚拟地址经过MMU转化为物理地址,从而访问外部内存里的数据。禁用MMU时,CPU访问物理地址。MMU如何工作映射.png页表:就是记录虚拟地址到物理地址映射规则的集合。内存以4K为单位分成一块一块的,页表记录每一块物理内存的首地址和虚拟地址的映射关系,即只需记录上.
2021-01-28 17:51:55 5031 1
原创 【source insight 】打开source insight 4 无法显示窗口
目录原因1:source insight 4 文件问题原因2:source insight 4 窗口移出了桌面外原因1:source insight 4 文件问题1.找到配置文件存放的目录,一般在如下地址可以找到,或者从C盘进就是C:\Users\用户名\Documents\Source Insight 4.0\Settings。2.进入Settings目录后会看到很多xml文件,把这些全都删除。(参考的博客里是说剪切出去,然后打开SI后,关闭SI,再复制回去,可以恢复以前的主.
2021-01-27 18:14:56 2791
原创 【vbers】ibv_post_send|IBV_SEND_SOLICITED|RDMA
ibv_post_send()函数原型为int ibv_post_send(struct ibv_qp *qp, struct ibv_send_wr *wr, struct ibv_send_wr **bad_wr);其中struct ibv_send_wr结构体的定义为:struct ibv_send_wr { uint64_t wr_id; struct ibv_send_wr *next; ..
2021-01-27 16:38:42 2082
原创 【测试】 FIO:ceph/磁盘IO测试工具 fio(iodepth深度)
原文:https://blog.csdn.net/don_chiang709/article/details/92628623FIO介绍FIO是测试IOPS的非常好的工具,用来对磁盘进行压力测试和验证。磁盘IO是检查磁盘性能的重要指标,可以按照负载情况分成照顺序读写,随机读写两大类。FIO是一个可以产生很多线程或进程并执行用户指定的特定类型I/O操作的工具,IO 是一个多线程io生成工具,可以生成多种IO模式,用来测试磁盘设备的性能(也包含文件系统:如针对网络文件系统 NFS 的IO测试)。
2021-01-26 19:55:00 14820 1
原创 【linux】程序找不到动态库.so的解决办法|查看.so动态库信息|.so动态库加载顺序
方法一:添加环境变量子招数1. 添加当前用户当前终端的环境变量-临时export LD_LIBRARY_PATH=/home/czd/... #.so file path子招数2. 添加当前用户的环境变量修改~/.bashrc文件,在其末尾,添加环境变量vim ~/.bashrcexport LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/czd/... #.so file path使其生效,source ~/.bashrc如不能生
2021-01-26 15:23:43 15556 2
原创 【RDMA】13. RDMA之用户态与内核态交互
原文:https://zhuanlan.zhihu.com/p/346708569在“RDMA之Verbs”一文中我们说道,Verbs API分为用户态和内核态,分别以ibv_和ib_作为前缀。RDMA技术的最大的优势就在于用户态可以绕过内核,直接控制硬件收发数据,减少了系统调用和内存拷贝次数,所以大部分的RDMA应用都是用户态应用,即使用以ibv_为前缀的用户态Verbs API。但是并非所有的用户态Verbs API都可以完全绕开内核,本文中我来讲解一下哪些API依赖于内核RDMA子系统(包括驱
2021-01-25 17:36:35 2621 4
原创 【RDMA】12. RDMA之Verbs|OFED
原文:https://zhuanlan.zhihu.com/p/329198771Verbs直译过来是“动词”的意思,它在RDMA领域中有两种含义:1) 由IB规范所描述的一组抽象定义,规定了各厂商的软硬件在各种Verbs下应该执行的动作或者表现出的行为,IB规范并未规定如何编程实现这些Verbs,在这种含义下,Verbs是与操作系统无关的。举个例子,IB规范要求所有RDMA设备必须支持Create QP的行为(IB 规范11.2.5.1):描述: 为指定的设备创建一个QP。 用户必
2021-01-25 17:25:12 3484
原创 【RDMA】11. RDMA之Shared Receive Queue
我们曾在【3. 基本元素】中简单介绍了SRQ的概念,本文将带大家了解更多关于SRQ的细节。基本概念什么是SRQ全称为Shared Receive Queue,直译为共享接收队列。我们知道,RDMA通信的基本单位是QP,每个QP都由一个发送队列SQ和接收队列RQ组成。SRQ是IB协议为了给接收端节省资源而设计的。不同于每个QP都拥有一个独立的RQ,我们可以把一个RQ共享给所有关联的QP使用,这个公用的RQ就称为SRQ。当与其关联的QP想要下发接收WQE时,都填写到这个SRQ中。然后每当硬件接收
2021-01-25 16:36:07 1601 2
原创 【RDMA】9. RDMA之Queue Pair
原文:https://zhuanlan.zhihu.com/p/195757767Queue Pair我们曾经在3. RDMA基本元素一文中简单的介绍了QP的概念,本文将更深入的讲解一些关于QP的细节。基本概念回顾首先我们来简单回顾下关于QP的基础知识:根据IB协议中的描述,QP是硬件和软件之间的一个虚拟接口。QP是队列结构,按顺序存储着软件给硬件下发的任务(WQE),WQE中包含从哪里取出多长的数据,并且发送给哪个目的地等等信息。QP的概念每个QP间都是独立的,彼此通.
2021-01-25 16:23:53 1848
原创 【RDMA】8. RDMA之Address Handle
原文:https://zhuanlan.zhihu.com/p/163552044前面已经介绍过,RDMA通信的基本单元是QP。我们来思考一个问题,假设A节点的某个QP要跟B节点的某个QP交换信息,除了要知道B节点的QP序号——QPN之外,还需要什么信息?要知道,QPN是每个节点独立维护的序号,不是整个网络中唯一的。比如A的QP 3要跟B的QP 5通信,网络中可不止一个QP5,可能有很多个节点都有自己的QP 5。所以我们自然可以想到,还需要找到让每个节点都有一个独立的标识。在传统TCP-IP协议栈中
2021-01-25 15:58:33 1064
原创 【RDMA】7. RDMA之Protection Domain
原文:https://zhuanlan.zhihu.com/p/159493100前文我们简单介绍了RDMA中最常见的一些资源,包括各种Queue,以及MR的概念等等。MR用于控制和管理HCA对于本端和远端内存的访问权限,确保HCA只有拿到正确Key之后才能读写用户已经注册了的内存区域。为了更好的保障安全性,IB协议又提出了Protection Domain(PD)的概念,用于保证RDMA资源间的相互隔离,本文就介绍一下PD的概念。PD是什么PD全称是Protection Domain,意为"保
2021-01-25 15:38:13 1172
原创 【Git】代码托管评审平台--gerrit|Gerrit Code Review
原文:https://www.cnblogs.com/chenpingzhao/p/9337117.html代码审核(Code Review)是软件研发质量保障机制中非常重要的一环,但在实际项目执行过程中,却因为种种原因被Delay甚至是忽略。在实践中,给大家推荐一款免费、开放源代码的代码审查软件Gerrit。一、 Code Review是什么Code Review最直观的解释即看代码。常规的做法为自己看,有时代码逻辑问题可能自己看不出来,需要找同事一起看,在大家知识体系相对平均的情况下可...
2021-01-21 21:46:04 4708
原创 【Git】Git配置|配置Username和email
目录查看当前User和Email配置配置查看当前User和Email配置git config --local --listgit config --list配置法一:使用命令修改git的用户名和提交的邮箱 1)修改全局 如果你要修改当前全局的用户名和邮箱时,需要在上面的两条命令中添加一个参数,--global,代表的是全局。 命令分别为:git config --global user.name 你的目标...
2021-01-21 17:56:17 77560
原创 【RDMA】5. RDMA基本服务类型
我们在“3. RDMA基本元素”一文中提到过,RDMA的基本通信单元是QP,而基于QP的通信模型有很多种,我们在RDMA领域称其为“服务类型”。IB协议中通过“可靠”和“连接”两个维度来描述一种服务类型。可靠通信中的可靠性指的是通过一些机制保证发出去的数据包都能够被正常接收。IB协议中是这样描述可靠服务的:Reliable Serviceprovides a guarantee that messages are delivered from a requester to a responde.
2021-01-21 14:27:13 1755 1
原创 【RDMA】3. RDMA基本元素和编程基础
RDMA技术中经常使用缩略语,很容易让刚接触的人一头雾水,本篇的目的是讲解RDMA中最基本的元素及其含义。我将常见的缩略语对照表写在前面,阅读的时候如果忘记了可以翻到前面查阅。WQWork Queue简称WQ,是RDMA技术中最重要的概念之一。WQ是一个储存工作请求的队列,为了讲清楚WQ是什么,我们先介绍这个队列中的元素WQE(Work Queue Element,工作队列元素)。WQEWQE可以认为是一种“任务说明”,这个工作请求是软件下发给硬件的,这份说明中包含了软件所希望硬件去
2021-01-21 14:27:00 2754
原创 【RDMA】2. 比较基于Socket与RDMA的通信
本篇的目的是通过对比一次典型的Socket和RDMA通信,直观的展示RDMA技术相比传统以太网的优势,尽量不涉及协议和软件实现细节。假设本端的某个应用想把自己内存中的数据复制到对端某个应用可以访问的内存中(或者通俗的讲,本端要给对端发送数据),我们来看一下Socket和RDMA的SEND-RECV语义都做了哪些操作。Socket在描述通信过程时的软硬件关系时,我们通常将模型划分为用户层Userspace,内核Kernel以及硬件Hardware。Userspace和Kernel实际上使用的是同一
2021-01-21 14:26:48 1799 1
原创 【RDMA】文档和教程和相关知识
原文:https://zhuanlan.zhihu.com/p/138874738本想完全靠自己的语言完成这篇概述,然而开篇并没有想象当中的好写,看样子从宏观上概括一个技术比从微观上探究细枝末节要困难不少。本文是以前人们对RDMA技术的介绍为主,加入了一些自己的理解。随着本专栏内容的增加,本篇概述也会更新和逐渐完善。什么是RDMA?RDMA( Remote Direct Memory Access )意为远程直接地址访问,通过RDMA,本端节点可以“直接”访问远端节点的内存。所谓直接,指的是可以
2021-01-21 14:26:28 2891 1
原创 【RDMA】6. RDMA之Memory Region
原文:https://zhuanlan.zhihu.com/p/156975042我们假设一种场景,同时也顺便温习一下RDMA WRITE操作的流程:如下图所示,A节点想要通过IB协议向B节点的内存中写入一段数据,上层应用给本节点的RDMA网卡下发了一个WQE,WQE中包含了源内存地址、目的内存地址、数据长度和秘钥等信息,然后硬件会从内存中取出数据,组包发送到对端网卡。B节点的网卡收到数据后,解析到其中的目的内存地址,把数据写入到本节点的内存中。那么问题来了,APP提供的地址都是虚拟地址(V
2021-01-21 14:25:55 2221 1
原创 【RDMA】RDMA编程和TCP编程的区别|bRPC
RDMARDMA和TCP编程差别Socket APIVerbs API百度bRPCRDMA想从根本上解决CPU参与网络传输的低效问题,就要更多地借助专用芯片的能力,RDMA高性能网络势不可挡。RDMA(Remote Direct Memory Access),可以简单理解为网卡完全绕过CPU实现两个服务器之间的内存数据交换。其作为一种硬件实现的网络传输技术,可以大幅提升网络传输效率,帮助网络IO密集的业务(比如分布式存储、分布式数据库等)获得更低的时延以及更高的吞吐。具体来.
2021-01-20 17:43:18 2981 2
原创 【linux】显示文件夹大小|包含隐藏的文件|文件排序
统计文件夹或者大小 包含隐藏的文件linuxdu -sh .[!.]* * | sort -hr1、前言在linux运维中,经常会出现莫名的磁盘爆满,但通过du -csh * 发现文件占用不大,这个时候就要怀疑是不是隐藏的文件占用了较大空间。2、方法查看隐藏的文件大小方法:du -sh .[!.]*du命令用来看文件size,比如du -csh * 显示非隐藏文件大小,并统计文件占用总的空间大小.[!.]* 是正则式, 意思是第一位是点, 第二位是除了点以...
2021-01-20 15:42:01 3942
原创 【RDMA】4. RDMA操作类型|WRITE|READ
前面几篇涉及RDMA的通信流程时一直在讲SEND-RECV,然而它其实称不上是“RDMA”,只是一种加入了0拷贝和协议栈卸载的传统收发模型的“升级版”,这种操作类型没有完全发挥RDMA技术全部实力,常用于两端交换控制信息等场景。当涉及大量数据的收发时,更多使用的是两种RDMA独有的操作:WRITE和READ。我们先来复习下双端操作——SEND和RECV,然后再对比介绍单端操作——WRITE和READ。SEND & RECVSEND和RECV是两种不同的操作类型,但是因为如果一端进行SEN
2021-01-20 11:46:21 5070 3
原创 【RDMA】技术详解(四):RDMA之Verbs和编程步骤
原文:https://blog.csdn.net/weixin_33978451/article/details/112398245Verbs直译过来是“动词”的意思,它在RDMA领域中有两种含义:1) 由IB规范所描述的一组抽象定义规定了各厂商的软硬件在各种Verbs下应该执行的动作或者表现出的行为,IB规范并未规定如何编程实现这些Verbs,在这种含义下,Verbs是与操作系统无关的。举个例子,IB规范要求所有RDMA设备必须支持Create QP的行为(IB 规范11.2.5.1):
2021-01-20 11:42:22 7972 5
原创 【RDMA】技术详解(三):理解RDMA Scatter Gather List|聚散表
原文:https://blog.csdn.net/qq_21125183/article/details/865271991. 前言在使用RDMA操作之前,我们需要了解一些RDMA API中的一些需要的值。其中在ibv_send_wr我们需要一个sg_list的数组,sg_list是用来存放ibv_sge元素,那么什么是SGL以及什么是sge呢?对于一个使用RDMA进行开发的程序员来说,我们需要了解这一系列细节。2. SGE简介在NVMe over PCIe中,I/O命令支持SGL(Scat
2021-01-20 10:57:13 3136 5
原创 【RDMA】技术详解(二):Send Receive操作
原文:https://blog.csdn.net/qq_21125183/article/details/865250121. 前言RDMA指的是远程直接内存访问,这是一种通过网络在两个应用程序之间搬运缓冲区里的数据的方法。RDMA与传统的网络接口不同,因为它绕过了操作系统。这允许实现了RDMA的程序具有如下特点:绝对的最低时延 最高的吞吐量 最小的CPU足迹 (也就是说,需要CPU参与的地方被最小化)2. RDMA Verbs操作使用RDMA, 我们需要有一张实现了RDMA引擎
2021-01-20 10:55:31 3508 1
原创 【RDMA】技术详解(一):RDMA概述
原文:https://blog.csdn.net/qq_21125183/article/details/865224751. DMA和RDMA概念1.1 DMADMA(直接内存访问)是一种能力,允许在计算机主板上的设备直接把数据发送到内存中去,数据搬运不需要CPU的参与。传统内存访问需要通过CPU进行数据copy来移动数据,通过CPU将内存中的Buffer1移动到Buffer2中。DMA模式:可以同DMA Engine之间通过硬件将数据从Buffer1移动到Buffer2,而不需要操作系统
2021-01-20 10:53:55 49054 6
原创 【RDMA】RDMA编程 和相关资料
creating Scatter Gather Elementshttps://www.openfabrics.org/downloads/Media/SC11/SC11_Writing_Application_Programs_for_RDMA_using_OFA_Software-v5.pdfhttps://www.cs.mtsu.edu/~waderholdt/6430/papers/ibverbs.pdf
2021-01-19 21:18:30 2348 3
原创 【ceph】async通信message路径
sendmessageAsyncMessenger::send_message(Message *m, ……);AsyncMessenger::_send_message(Message *m,, ……);AsyncMessenger::submit_message(Message *m,, ……);AsyncConnection::send_message(Message *m)out_q[m->get_priority()].emplace_back(std::move(bl).
2021-01-19 19:16:04 671
原创 【Ceph】Ceph源码分析之Async模块
原文:https://blog.csdn.net/hawkerou/article/details/654499571、异步通信核心模块EventCenter+Epoll概述EventCenter是Async异步消息通信的核心模块,通过事件/回调模型向上提供异步消息通信,每个Async下的worker线程负责处理一个EventCenter的事件集合。EventCenter针对不同类型的事件使用不同的事件监听来处理事件回调。详细设计事件类型目前EventCenter共支持4种类型的事件
2021-01-15 16:59:29 370
转载 【C++11】emplace_back 与 push_back的区别
原文:https://blog.csdn.net/p942005405/article/details/84764104C++容器比如vector,map,set等的插入操作,通常使用push_back()向容器中加入一个右值元素(临时对象)时,首先会调用构造函数构造这个临时对象,然后需要调用拷贝构造函数将这个临时对象放入容器中。原来的临时变量释放。这样造成的问题就是临时变量申请资源的浪费。引入了右值引用,转移构造函数后,push_back()右值时就会调用构造函数和转移构造函数,如果可以在插入的.
2021-01-14 21:13:34 372
原创 【C++】初始化函数列表和构造函数内赋值的区别
既然构造函数初始化列表和构造函数体内赋值都可以对成员变量赋值,那么二者有何区别,是不是二者等效呢?一、若类的数据成员是静态的(const)和引用类型,必需用初始化列表静态(const)的数据成员只能初始化而不能赋值,同样引用类型也是只可以被初始化,那么只有用初始化列表。如:#include <iostream> #include <string> using namespace std; template<class t> class n
2021-01-14 11:41:00 594
原创 【网络】DPDK的基本原理|DPDK和RDMA的区别
原文:https://blog.csdn.net/oldboy_1983/article/details/79474750网络设备(路由器、交换机、媒体网关、SBC、PS网关等)需要在瞬间进行大量的报文收发,因此在传统的网络设备上,往往能够看到专门的NP(Network Process)处理器,有的用FPGA,有的用ASIC。这些专用器件通过内置的硬件电路(或通过编程形成的硬件电路)高效转发报文,只有需要对报文进行深度处理的时候才需要CPU干涉。但在公有云、NFV等应用场景下,基础设施以CPU为运算
2021-01-13 20:25:50 8967 3
原创 【知识】编程范式和编程思想
4.1 编程范式(https://forums.ni.com/t5/Thinking-in-LabVIEW/%E7%AC%AC4%E7%AB%A0-LabVIEW%E5%9B%BE%E5%BD%A2%E5%8C%96%E7%BC%96%E7%A8%8B%E8%AF%AD%E8%A8%80%E7%9A%84%E7%BC%96%E7%A8%8B%E8%8C%83%E5%BC%8F-Chapter-4-LabVIEW-graphical-programming/td-p/3497531?profile.lan
2021-01-13 14:07:41 559
原创 【文件共享】NFS和samba、FTP都有什么区别
samba 在不同的Unix机器间进行资源共享,现基于tcp,它使用的协议是SMB。微软不愿意交License费,在windows系统中对该协议重新进行了实现。既然samba和windows中的网络邻居都使用SMB协议。所以samba自然主要用于在windows和unix之间共享资源。资源包括文件、打印机等等。(跨平台)NFS用于UNIX机器之间的资源共享。其设置相当容易,现在NFS已经成为UNIX/LINUX上的标配。两者的文档都说自己的效率高一些,实际是差别不是太大。--2019从配置
2021-01-07 20:53:44 8702 1
原创 ceph:消息通信机制小记--研读
分布式存储系统,需要一个稳定的网络通信机制,来实现客户端和服务端的消息通信。ceph有三种消息通信框架:simple,xio和async。目前只研究了async。Messenger的创建消息的收发和处理都是异步的,所以必须需要单独的模块来处理。所有模块(mon,osd, mds等)在启动阶段都会创建一个Messenger。既然是async的通信框架,那必须有单独的线程来处理消息收发,所以在创建Messenger时必须启动多个线程。以ceph-mon为例,创建MessengerMessenger
2021-01-07 15:14:15 959 1
原创 【Ceph 】Async 通信会话建立过程--OSD--实际跟踪笔记
目录一、前置知识1、ceph Async 模型2、Async Messenger机制图二、代码跟踪1、Server1)Initialization2)Bind and Listen3)Deal with Event4)Add Listen Fd5)Accept Connection6)Add Accept Fd7)Communication2、Client3、Summary三、RDMA messengerwith InfiniBand RD..
2021-01-04 21:13:18 1046
原创 【C++11】make_shared函数|std::make_unique
make_shared的使用:shared_ptr<string> p1 = make_shared<string>(10, '9'); shared_ptr<string> p2 = make_shared<string>("hello"); shared_ptr<string> p3 = make_shared<string>(); 尽量使用make_shared初始化C++11 中引入了智能指针,
2021-01-04 19:51:55 4657 1
CP丢包对带宽性能的影响分析(Analysing TCP performance when link experiencing
2023-11-26
Argobots: A Lightweight Threading Framework for Massive Fine-Gra
2023-09-30
mellanox RDMA MLNX-OFED Documentation Rev 5.7-1.0.2.0-11-15-2022
2022-11-15
A Review of Lightweight Thread Approaches for High Performance
2022-09-18
DISTRIBUTED ASYNCHRONOUS OBJECT STORAGE (DAOS)
2022-09-10
大文件切割FileSplitter+CoolFormat3.4+Sublime Text 3
2022-08-17
DAOS_A_Scale-Out_High_Performance_Storage_Stack_fo.pdf
2022-08-15
18--RPC18--RPC18--RPC18--RPC18--RPC18--RPC18--RPC18--RPC18--RPC1
2022-08-08
基于可靠连接和高效资源共享的可扩展 RDMA RPC
2022-02-12
连接服务器失败(错误原因:Connection refused) error 111 抓包结果
2022-01-25
删除文件只保留最新的n个文件的shell脚本
2021-09-08
启用英特尔QuickAssist 技术 (QAT)NA-360_technical_announcement.pdf
2021-08-13
shell 脚本怎么删除 匹配字符之间的行?
2023-03-01
我写的IP转interface的shell脚本错哪里了呢?
2022-12-10
ifconfig 除了列出网口信息还有一堆不知道是什么?
2022-10-27
为什么程序能用getenv读到的环境变量我printenv打印不出来?
2022-09-23
find 后调用 -exec 执行多条语句的方法是?
2022-09-09
如何设置scons的环境变量?
2022-08-25
Gcc编译代码报错/usr/bin/ld: cannot find abt
2022-08-23
为什么popen没有执行里面的shell脚本?
2022-05-19
linux 的buff/cache有必要手动清除吗?
2021-12-06
linux怎么查看线程的父进程?
2021-10-26
C++11的allocator::construct如何构造多参数对象?
2021-09-25
C++11启动线程时怎么给线程分配名字?
2021-09-22
linux 的core file的时间戳怎么样才能变成日期格式
2018-02-26
关于protobuff,json等协议数据跨语言传输的一些问题
2017-11-09
servlet应该放在哪个文件夹?servlet-class的根目录是哪里?
2017-10-19
如何实现子Div的大小随着父Div的大小动态的改变而改变
2017-09-24
如何实现点击页面上的图片改变服务器上某个文件的JSON数据?
2017-08-07
pentaho,Kylin, Mondrian, Saiku之间到底是什么样的关系?
2017-07-16
Echart和WPF chart 比有什么优势吗?为什么Echart的JS库如此热门?
2017-06-22
shell函数内如何改变参数的值?类似于C语言一样参数指针传递
2017-05-21
shell怎么调用一个子脚本之后 让自己可以退出不必等子脚本
2017-05-20
linux 的core file的时间戳怎么样才能变成日期格式
2016-09-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人