matlab与c++混合编程能否传递指针参数并在mex文件里使用指针直接修改m文件的数据? 20C

我通过matlab和c++混合编程读取硬件的实时数据,
c++读取的数据复制给mex的输出矩阵,但是延时太高,
所以我想能不能给mex传递地址,c++直接改变内存的数据,
达到减少输出过程,缩短延时
能不能给我一个简单的实例,数据都是int16类型

1个回答

qq_26210573
qq_26210573 这个我看过,不是我想要的,谢谢
2 年多之前 回复
qq_26210573
qq_26210573 这个我看过,不是我想要的,谢谢
2 年多之前 回复
qq_26210573
qq_26210573 这个我看过,不是我想要的
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
matlab与c++混合编程能否传递指针参数并在mex文件里使用指针直接修改m文件的数据?
我通过matlab和c++混合编程读取硬件的实时数据, c++读取的数据复制给mex的输出矩阵,但是延时太高, 所以我想能不能给mex传递地址,c++直接改变内存的数据, 达到减少输出过程,缩短延时 能不能给我一个简单的实例,数据都是int16类型
怎么运行matlab和c混合编程的代码啊?
lz 不会学过matlab和c,但matlab和c混合编程的代码不会运行啊 ```SLIC-mex那个 matlab和c混合编程的代码,下载了不会用 ```
MATLAB和C语言混合编程,mex -setup怎么执行 不了
菜鸟一枚,求哪位大神帮帮忙。 就输了一句话,就出现了这个错误提示,但是不知道怎么解决 >> mex -setup MEX 配置为使用 'lcc-win32' 以进行 C 语言编译。 Warning: The MATLAB C and Fortran API has changed to support MATLAB variables with more than 2^32-1 elements. In the near future you will be required to update your code to utilize the new API. You can find more information about this at: http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html. 要选择不同的语言,请从以下选项中选择一种命令: mex -setup C++ mex -setup FORTRAN 警告: Windows SDK 7.1 appears to be installed, but its compiler was not found. Install .NET Framework 4.0, and then rerun the SDK installation to add the "Visual C++ Compilers" component. See http://www.mathworks.com/support/solutions/en/data/1-IB1G3Q/ for more information.
matlab调用c++程序mex文件问题
我在使用matlab时想利用opencv中的lsd直线检测算法输出检测到的直线起点和终点坐标报错![图片说明](https://img-ask.csdn.net/upload/201710/23/1508722929_34297.png)如图所示,我按图中路径根本找不到文件,求大神解答
matlab和c++混合编译 无法通过
先使用matlab对数据进行预处理,随后将数据传递给c++进行循环计算,但是当c++程序里面使用的.m文件转换的dll时,mex可以通过,一旦运行起来matlab直接崩溃,如何处理?
C和matlab混合编程mxGetName问题
mex编译时,无法解析的外部符号_mxGetName,该符号在函数_mexFunction中被引用。我查了之后好像说是 _mxGetName已经废弃,应该怎么办,是有函数替代还是可以设置兼容什么的?![图片](https://img-ask.csdn.net/upload/201511/23/1448282390_817145.jpg)
关于matlab和cuda混合编程的一些困惑
通过VS2015创建的.cu文件里面包括了在GPU上调用的global函数以及mexfunction。 之后直接在matlab里面通过mexcuda XX.cu命令就可以生成可以在matlab直接调用 并且通过GPU加速的mexw64吗? 为什么matlab带的demo里面还有一些诸如mxgpu, mxGPUCreateFromMxArray的东西,感觉搞不懂了,有点混乱! ``` /* * Example of how to use the mxGPUArray API in a MEX file. This example shows * how to write a MEX function that takes a gpuArray input and returns a * gpuArray output, e.g. B=mexFunction(A). * * Copyright 2012 The MathWorks, Inc. */ #include "mex.h" #include "gpu/mxGPUArray.h" /* * Device code */ void __global__ TimesTwo(double const * const A, double * const B, int const N) { /* Calculate the global linear index, assuming a 1-d grid. */ int const i = blockDim.x * blockIdx.x + threadIdx.x; if (i < N) { B[i] = 2.0 * A[i]; } } /* * Host code */ void mexFunction(int nlhs, mxArray *plhs[], int nrhs, mxArray const *prhs[]) { /* Declare all variables.*/ mxGPUArray const *A; mxGPUArray *B; double const *d_A; double *d_B; int N; int const threadsPerBlock = 256; int blocksPerGrid; /* Initialize the MathWorks GPU API. */ mxInitGPU(); A = mxGPUCreateFromMxArray(prhs[0]); /* * Now that we have verified the data type, extract a pointer to the input * data on the device. */ d_A = (double const *)(mxGPUGetDataReadOnly(A)); /* Create a GPUArray to hold the result and get its underlying pointer. */ B = mxGPUCreateGPUArray(mxGPUGetNumberOfDimensions(A), mxGPUGetDimensions(A), mxGPUGetClassID(A), mxGPUGetComplexity(A), MX_GPU_DO_NOT_INITIALIZE); d_B = (double *)(mxGPUGetData(B)); N = (int)(mxGPUGetNumberOfElements(A)); blocksPerGrid = (N + threadsPerBlock - 1) / threadsPerBlock; TimesTwo<<<blocksPerGrid, threadsPerBlock>>>(d_A, d_B, N); /* Wrap the result up as a MATLAB gpuArray for return. */ plhs[0] = mxGPUCreateMxArrayOnGPU(B); /* * The mxGPUArray pointers are host-side structures that refer to device * data. These must be destroyed before leaving the MEX function. */ mxGPUDestroyGPUArray(A); mxGPUDestroyGPUArray(B); } ```
求看一下这个Matlab&c++混合编程的代码实现的是什么功能?
RT,程序代码如下: ``` #include <math.h> #include<omp.h> #include <sys/types.h> #include "mex.h" #define INF 1E20 typedef signed int int32_t; /* * Generalized distance transforms based on Felzenswalb and Huttenlocher. */ static inline int square(int x) { return x*x; } void dt1d(float *src, float *dst, int *ptr, int step, int n, double a, double b) { int *v = new int[n]; float *z = new float[n+1]; int k = 0; v[0] = 0; z[0] = -INF; z[1] = +INF; for (int q = 1; q <= n-1; q++) { float s = ((src[q*step] - src[v[k]*step]) - b*(q - v[k]) + a*(square(q) - square(v[k]))) / (2*a*(q-v[k])); while (s <= z[k]) { // Update pointer k--; s = ((src[q*step] - src[v[k]*step]) - b*(q - v[k]) + a*(square(q) - square(v[k]))) / (2*a*(q-v[k])); } k++; v[k] = q; z[k] = s; z[k+1] = +INF; } k = 0; for (int q = 0; q <= n-1; q++) { while (z[k+1] < q) k++; dst[q*step] = a*square(q-v[k]) + b*(q-v[k]) + src[v[k]*step]; ptr[q*step] = v[k]; } delete [] v; delete [] z; } // matlab entry point // [M, Ix, Iy] = dt(vals, ax, bx, ay, by) void mexFunction(int nlhs, mxArray *plhs[], int nrhs, const mxArray *prhs[]) { if (nrhs != 5) mexErrMsgTxt("Wrong number of inputs"); if (nlhs != 3) mexErrMsgTxt("Wrong number of outputs"); if (mxGetClassID(prhs[0]) != mxSINGLE_CLASS) mexErrMsgTxt("Invalid input"); const int *dims = mxGetDimensions(prhs[0]); float *vals = (float *)mxGetPr(prhs[0]); double ax = mxGetScalar(prhs[1]); double bx = mxGetScalar(prhs[2]); double ay = mxGetScalar(prhs[3]); double by = mxGetScalar(prhs[4]); mxArray *mxM = mxCreateNumericArray(2, dims, mxSINGLE_CLASS, mxREAL); mxArray *mxIx = mxCreateNumericArray(2, dims, mxINT32_CLASS, mxREAL); mxArray *mxIy = mxCreateNumericArray(2, dims, mxINT32_CLASS, mxREAL); float *M = (float *)mxGetPr(mxM); int32_t *Ix = (int32_t *)mxGetPr(mxIx); int32_t *Iy = (int32_t *)mxGetPr(mxIy); float *tmpM = (float *)mxCalloc(dims[0]*dims[1], sizeof(float)); int32_t *tmpIx = (int32_t *)mxCalloc(dims[0]*dims[1], sizeof(int32_t)); int32_t *tmpIy = (int32_t *)mxCalloc(dims[0]*dims[1], sizeof(int32_t)); int coreNum = omp_get_num_procs(); int threadNum=coreNum; if (threadNum > dims[1]) threadNum = dims[1]; if (threadNum > dims[0]) threadNum = dims[0]; omp_set_num_threads(threadNum); #pragma omp parallel for schedule (guided) for (int x = 0; x < dims[1]; x++) dt1d(vals+x*dims[0], tmpM+x*dims[0], tmpIy+x*dims[0], 1, dims[0], -ay, -by); #pragma omp parallel for schedule (guided) for (int y = 0; y < dims[0]; y++) dt1d(tmpM+y, M+y, tmpIx+y, dims[0], dims[1], -ax, -bx); // get argmins and adjust for matlab indexing from 1 for (int x = 0; x < dims[1]; x++) { for (int y = 0; y < dims[0]; y++) { int p = x*dims[0]+y; Ix[p] = tmpIx[p]+1; Iy[p] = tmpIy[tmpIx[p]*dims[0]+y]+1; } } mxFree(tmpM); mxFree(tmpIx); mxFree(tmpIy); plhs[0] = mxM; plhs[1] = mxIx; plhs[2] = mxIy; } /* %%% DEBUGGING CODE %%% N = 500; A = rand(N,N); w = rand(4,1); tic; [res,ix,iy] = dt(A,w(1),w(2),w(3),w(4)); toc; tic; [res2,ix2,iy2] = dt2(A,w(1),w(2),w(3),w(4)); toc; norm(res(:) - res2(:)) mean(ix(:) ~= ix2(:)) mean(iy(:) ~= iy2(:)) */ ``` 不太清楚这里的dt1d是从哪里来的?
matlab进行mex时出现 error LNK2019: 无法解析的外部符号……
**具体问题是:我想把现有的.cpp文件转成.mexw32的文件,代码没有出现错误,因为前辈曾转出过64位的。** 而且配置应该没问题,因为mex代码中其他.cpp文件是可以做出来的,唯独这个出现以下错误: mex mex_maxflow.cpp 正在创建库 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\MEX_4W~1\templib.x 和对象 C:\DOCUME~1\ADMINI~1\LOCALS~1\TEMP\MEX_4W~1\templib.exp mex_maxflow.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall Graph<double,double,double>::~Graph<double,double,double>(void)" (??1?$Graph@NNN@@QAE@XZ),该符号在函数 "public: void * __thiscall Graph<double,double,double>::`scalar deleting destructor'(unsigned int)" (??_G?$Graph@NNN@@QAEPAXI@Z) 中被引用 mex_maxflow.obj : error LNK2019: 无法解析的外部符号 "private: void __thiscall Graph<double,double,double>::reallocate_nodes(int)" (?reallocate_nodes@?$Graph@NNN@@AAEXH@Z),该符号在函数 "public: int __thiscall Graph<double,double,double>::add_node(int)" (?add_node@?$Graph@NNN@@QAEHH@Z) 中被引用 mex_maxflow.obj : error LNK2019: 无法解析的外部符号 "private: void __thiscall Graph<double,double,double>::reallocate_arcs(void)" (?reallocate_arcs@?$Graph@NNN@@AAEXXZ),该符号在函数 "public: void __thiscall Graph<double,double,double>::add_edge(int,int,double,double)" (?add_edge@?$Graph@NNN@@QAEXHHNN@Z) 中被引用 mex_maxflow.obj : error LNK2019: 无法解析的外部符号 "public: double __thiscall Graph<double,double,double>::maxflow(bool,class Block<int> *)" (?maxflow@?$Graph@NNN@@QAEN_NPAV?$Block@H@@@Z),该符号在函数 _mexFunction 中被引用 mex_maxflow.obj : error LNK2019: 无法解析的外部符号 "public: __thiscall Graph<double,double,double>::Graph<double,double,double>(int,int,void (__cdecl*)(char *))" (??0?$Graph@NNN@@QAE@HHP6AXPAD@Z@Z),该符号在函数 _mexFunction 中被引用 mex_maxflow.mexw32 : fatal error LNK1120: 5 个无法解析的外部命令 E:\MATLAB~3\BIN\MEX.PL: Error: Link of 'mex_maxflow.mexw32' failed. 折腾好久了也没结果,我试着更改文件名也存在错误,查了很多资料有些用vs编译的说是.lib调用问题,不过感觉和matlab进行mex是两回事么?好像是编译的文件引用了mexFuntion中文件,就是上面错误中说到的。请大家帮忙分析一下,不胜感激。仅有的1c币奉上
matlab里调用C++,while循环处理vector导致崩溃
matlab里调用C++,while循环处理vector导致崩溃。 我在matlab里调用C++ ,VS2010,用mex x.cpp,运行一次之后能出来结果,但接着重复运行一下就容易死机,也就是每次打开就能运行一次。有时运行几次没问题,但之后还是导致matlab崩溃。 是不是c ++代码最后要有一个释放资源什么的操作,求大神相助! 有时候报错 Unexpected Standard exception from MEX file. What() is:bad allocation C++代码见http://pan.baidu.com/s/1pJ0ZJzd。万分感谢!
关于makefile.win32的问题 稀疏编码相关作者主页上下载的matlab程序
MEX = C:\MATLAB6p5\bin\win32\mex.bat #mex NRFDIR = ./nrf MEXT = dll all: cgf_sc.c make -C nrf -f makefile.win32 $(MEX) -I$(NRFDIR) cgf_sc.c nrf/libnrfopt.a -output cgf_sc2 文件中的这几句话是什么意思呢? 好像是用到了matlab和c的混合编程 运行程序报错说找不到cgf_sc2函数 我应该怎么让程序运行起来呢 希望懂的大神指点一下_(:з」∠)_
matlab和C++混编的程序如何运行?
![文件列表](https://img-ask.csdn.net/upload/201807/05/1530753084_166712.jpg) 这是readme文件中的说明: Please follow these simple instructions to get the ToolBox working: 1) Download and unzip SegToolBox.zip from the website. ****** PRECAUTION: Please make sure that the path-name to the directory where files are unzipped **does NOT** contain any spaces. ****** 2) Open Matlab. Cd to the unzipped directory whcih has all the files. 3) Make sure you have mex C++ compiler installed (Ex: Visual C++.) - To choose the compiler type "mex -setup" at the matlab commandline. - Follow the instructions therein until you have chosen a C++ compiler. 4) Build the library files required by the toolbox by executing the following at the matlab commandline: >> mex GraphCutSegment.cpp graph.cpp maxflow.cpp AND >> mex GraphCutSegmentLazy.cpp graph.cpp maxflow.cpp This should create the library files (ex: FileName.dll in Windows or FileName.mexmac in MacOS) 我按上面操作生成了一个GraphCutSegmentLazy.mexw64文件 另一个生成失败了 但是按照readme说明不是应该生成.dll文件吗?这个列表里本来就有,这个mexw64是来运行程序的吗? 程序下载的连接:http://www.cs.cmu.edu/~mohitg/segmentation.htm
请问安装了编译器,matlab 还是不能找到,怎样解决?
D:\MATLAB\MATLAB2012A 32-64BIT\BIN\MEX.PL: Error: 'libsvmread.c' not found. Error: D:\Matlab\Matlab2012a 32-64bit\toolbox\matlab\general\mex.m failed (line 206) Unable to complete successfully. => Please check README for detailed instructions.
matlab2014a 找不到编译器
我的电脑是xp系统,安装的是matlab2014a,需要编译.h文件,在编译时出现这样情况 mex -setup MEX 配置为使用 'lcc-win32' 以进行 C 语言编译。 Warning: The MATLAB C and Fortran API has changed to support MATLAB variables with more than 2^32-1 elements. In the near future you will be required to update your code to utilize the new API. You can find more information about this at: http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html. 要选择不同的语言,请从以下选项中选择一种命令: mex -setup C++ mex -setup FORTRAN 错误使用 mex 未找到支持的编译器或 SDK。有关选项,请访问 http://www.mathworks.com/support/compilers/R2014a/win32。 我已经下载VC6.0和VS2013_Support_For_Matlab_2013_32bit,但是还是不好使。请求大神帮忙
用Mac版Matlab的fraclab工具箱计算分形维数时出错。
用Mac版Matlab的fraclab工具箱计算分形维数时出错 可以到达这个界面 ![图片说明](https://img-ask.csdn.net/upload/201911/28/1574905590_824947.png) 但是点击计算之后无论是自动还是手动都无法计算分形维数。 手动计算报错代码如下: MEX 文件 '/Applications/MATLAB_R2018a.app/toolbox/FracLab-2-2.2-Universal_20170325/FracLab-2.2-Universal/FracLab/Binaries/osx64intel/monolr.mexmaci64' 无效: dlopen(/Applications/MATLAB_R2018a.app/toolbox/FracLab-2-2.2-Universal_20170325/FracLab-2.2-Universal/FracLab/Binaries/osx64intel/monolr.mexmaci64, 6): Library not loaded: @loader_path/libmex.dylib Referenced from: /Applications/MATLAB_R2018a.app/toolbox/FracLab-2-2.2-Universal_20170325/FracLab-2.2-Universal/FracLab/Binaries/osx64intel/monolr.mexmaci64 Reason: image not found。 出错 fl_monolr (line 36) [a_hat,b_hat] = monolr(x,y,RegType,u{:}); 出错 choixbornes (line 64) [a_hat,b_hat]=fl_monolr(x(Indexes),y(Indexes),RegParam_bis{:}); 计算 Line ButtonDownFcn 时出错。 自动计算报错代码如下: MEX 文件 '/Applications/MATLAB_R2018a.app/toolbox/FracLab-2-2.2-Universal_20170325/FracLab-2.2-Universal/FracLab/Binaries/osx64intel/monolr.mexmaci64' 无效: dlopen(/Applications/MATLAB_R2018a.app/toolbox/FracLab-2-2.2-Universal_20170325/FracLab-2.2-Universal/FracLab/Binaries/osx64intel/monolr.mexmaci64, 6): Library not loaded: @loader_path/libmex.dylib Referenced from: /Applications/MATLAB_R2018a.app/toolbox/FracLab-2-2.2-Universal_20170325/FracLab-2.2-Universal/FracLab/Binaries/osx64intel/monolr.mexmaci64 Reason: image not found。 出错 fl_monolr (line 36) [a_hat,b_hat] = monolr(x,y,RegType,u{:}); 出错 fl_regression (line 89) [a_hat,b_hat]=fl_monolr(x,y,RegParam{:}); 出错 boxdim_listepoints (line 135) [boxdim,handlefig,bounds]=fl_regression(log2(tailles_carres),log2(Nboites),'-a_hat','BoxDimension',reg,RegParam{:}); 出错 boxdim_binaire (line 136) [boxdim,Nboites,handlefig,bounds]=boxdim_listepoints(listepoints,tailles_carres,pave_elementaire,Waitbar,reg,u{:}); 出错 fl_boxdim_compute (line 251) [dim,nb,handlefig]=boxdim_binaire(SignIn,box_size,AspectRatio,[],1,reg,RegParam{:}); 计算 UIControl Callback 时出错。 请求大佬帮忙看一下
Linux系统下怎样用matlab编译生成mexglx。
我的Linux是32位的,现在需要生成一个mex文件,请问该怎么在Linux系统下用MATLAB编译?
MATLAB安装时频分析工具箱时在mex setup时找不到SDK或支持的编译器?
![![图片说明](https://img-ask.csdn.net/upload/201703/24/1490341600_245568.png)图片说明]( https://img-ask.csdn.net/upload/201703/24/1490341335_925110.png) 根据matlab安装视频分析工具箱的要求,添加到toolbox之后,使用mex -setup就遇到了问题, 从官网下载了vs2015后安装,但每次点击时都会修复……工具箱也一直没有安装完成
Matlab调用.mexw64文件函数报错 Undefined function
Matlab调用.mexw64文件函数报错 Undefined function,如图 ![图片说明](https://img-ask.csdn.net/upload/201611/23/1479886640_957686.png) Mex_OcclusionQueryC.mexw64文件在当前目录下,却说找不到是什么原因呢? 新手求大神指教,谢谢~
使用vs2017给matlab做编译器的时候出现的问题
![图片说明](https://img-ask.csdn.net/upload/201807/03/1530622039_95132.png) 我在复现这个里面的 https://github.com/cszn/IRCNN 目前是matlab2016b和vs2017 输入代码这些 mex -setup mex -setup:'C:\Program files\MATLAB\R2016b\bin\win64\mexopts\msvc2017.xml' C mex -setup C++ mex -setup:'C:\Program files\MATLAB\R2016b\bin\win64\mexopts\msvcpp2017.xml' C++ cd 'C:\Program files\MATLAB\R2016b\matconvnet\matconvnet-1.0-beta25' addpath matlab %run this vl_compilenn('enableGpu', true, 'cudaMethod', 'nvcc', ... 'cudaRoot', 'C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0', ... 'enableCudnn', true, 'cudnnRoot', 'C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0') ; ``` ```
Mex
Problem Description Mex is a function on a set of integers, which is universally used for impartial game theorem. For a non-negative integer set S, mex(S) is defined as the least non-negative integer which is not appeared in S. Now our problem is about mex function on a sequence. Consider a sequence of non-negative integers {ai}, we define mex(L,R) as the least non-negative integer which is not appeared in the continuous subsequence from aL to aR, inclusive. Now we want to calculate the sum of mex(L,R) for all 1 <= L <= R <= n. Input The input contains at most 20 test cases. For each test case, the first line contains one integer n, denoting the length of sequence. The next line contains n non-integers separated by space, denoting the sequence. (1 <= n <= 200000, 0 <= ai <= 10^9) The input ends with n = 0. Output For each test case, output one line containing a integer denoting the answer. Sample Input 3 0 1 3 5 1 0 2 0 1 0 Sample Output 5 24
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
使用 Docker 部署 Spring Boot 项目
Docker 技术发展为微服务落地提供了更加便利的环境,使用 Docker 部署 Spring Boot 其实非常简单,这篇文章我们就来简单学习下。首先构建一个简单的 S...
英特尔不为人知的 B 面
从 PC 时代至今,众人只知在 CPU、GPU、XPU、制程、工艺等战场中,英特尔在与同行硬件芯片制造商们的竞争中杀出重围,且在不断的成长进化中,成为全球知名的半导体公司。殊不知,在「刚硬」的背后,英特尔「柔性」的软件早已经做到了全方位的支持与支撑,并持续发挥独特的生态价值,推动产业合作共赢。 而对于这一不知人知的 B 面,很多人将其称之为英特尔隐形的翅膀,虽低调,但是影响力却不容小觑。 那么,在...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
白话阿里巴巴Java开发手册高级篇
不久前,阿里巴巴发布了《阿里巴巴Java开发手册》,总结了阿里巴巴内部实际项目开发过程中开发人员应该遵守的研发流程规范,这些流程规范在一定程度上能够保证最终的项目交付质量,通过在时间中总结模式,并推广给广大开发人员,来避免研发人员在实践中容易犯的错误,确保最终在大规模协作的项目中达成既定目标。 无独有偶,笔者去年在公司里负责升级和制定研发流程、设计模板、设计标准、代码标准等规范,并在实际工作中进行...
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
redis分布式锁,面试官请随便问,我都会
文章有点长并且绕,先来个图片缓冲下! 前言 现在的业务场景越来越复杂,使用的架构也就越来越复杂,分布式、高并发已经是业务要求的常态。像腾讯系的不少服务,还有CDN优化、异地多备份等处理。 说到分布式,就必然涉及到分布式锁的概念,如何保证不同机器不同线程的分布式锁同步呢? 实现要点 互斥性,同一时刻,智能有一个客户端持有锁。 防止死锁发生,如果持有锁的客户端崩溃没有主动释放锁,也要保证锁可以正常释...
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
Nginx 原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。 Nginx 的整体架构 Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
Java世界最常用的工具类库
Apache Commons Apache Commons有很多子项目 Google Guava 参考博客
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC...
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下...
为什么要学数据结构?
一、前言 在可视化化程序设计的今天,借助于集成开发环境可以很快地生成程序,程序设计不再是计算机专业人员的专利。很多人认为,只要掌握几种开发工具就可以成为编程高手,其实,这是一种误解。要想成为一个专业的开发人员,至少需要以下三个条件: 1) 能够熟练地选择和设计各种数据结构和算法 2) 至少要能够熟练地掌握一门程序设计语言 3) 熟知所涉及的相关应用领域的知识 其中,后两个条件比较容易实现,而第一个...
Android 9.0 init 启动流程
阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android本篇文章主要介绍Android开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:一、启动流程概述一、 启动流程概述Android启动流程跟Linux启动类似,大致分为如下五个阶段。1.开机上电,加载固化的ROM。2.加载BootLoader,拉起Android OS。3.加载Uboot,初始外设,引导Kernel启动等。...
相关热词 c# 引用mysql c#动态加载非托管dll c# 两个表数据同步 c# 返回浮点json c# imap 链接状态 c# 漂亮字 c# 上取整 除法 c#substring c#中延时关闭 c#线段拖拉
立即提问