在根据执行时间分析现有代码方面,我需要一些帮助.目的是加快速度.
我已经获得了一些以前工作过的代码.它完全用C++编写,带有OO概念.有一个基于GUI的界面,选择一个选项运行选定的代码.(作为项目的一部分,大约有11个班级).
我希望能够按下GUI选项并让代码运行并生成资源映射,如:
Functions of Class 1 = 20% of execution time
Functions of Class 2 = 60% of execution time
Functions of Class 3 = 10% of execution time
Functions of Class 4 = 10% of execution time
Run Code Online (Sandbox Code Playgroud)
这样,我知道哪个班级占用的时间最多,然后知道哪个班级可以继续工作并改进.但是,我不知道该怎么做.我只有基本的C++知识.
我读过这篇文章:找到c ++执行时间,但是因为程序不是串行的.一个类调用另一个,调用另一个,我不知道系统时钟/滴答是如何实现的?
我读过Valgrind,Zoom,Poor Man's Profiler等程序,但实际上并不知道如何将它与代码集成.有这么简单的方法吗?
我也读过这个方法:如何分析在Linux中运行的C++代码?但是,我不知道如何获得关于基于类的信息的尖锐信息(Class 1,Class 2等)
有人可以建议新手吗?
我编写了一个Matlab脚本,可以使用虚拟COMM端口实时读取数据.我在mfile中完成了大量的信号处理.
接下来,我觉得需要一个紧凑的GUI,将信息显示为摘要.
我最近才开始挖掘和阅读更多Matlab的内置GUI工具GUIDE.我已经按照了一些教程,成功地能够在按下按钮后让我的图形显示在我的GUI上.
但是,我希望GUI能够实时更新.我的数据向量不断更新(从COMM端口读取数据).我希望GUI能够使用更新的数据更新图表,而不是依靠按钮进行更新.有人可以指出我正确的方向进行背景更新吗?
以下是目前GUI的相关代码:
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global data
global time
% Time domain plot
axes(handles.timeDomainPlot);
cla;
plot (time, data);
Run Code Online (Sandbox Code Playgroud)
编辑更改代码:
% --- Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, …Run Code Online (Sandbox Code Playgroud) 我有一个以二进制数据保存的原始图像文件(无编码).我想读取文件并将值转换为unsigned char.但我不知道如何开始这样做.每个文件包含640x480字节.每个像素是8位.
我在这里使用了C++帮助页面:http://www.cplusplus.com/doc/tutorial/files/,但是当我在宣传数据时,它似乎显示了相同的二进制/非人类可读字符.有人可以建议吗?到目前为止,这是我的代码:
#include <iostream>
#include <fstream>
using namespace std;
ifstream::pos_type size;
char * memblock;
int main () {
ifstream file ("imageData.raw", ios::in|ios::binary|ios::ate);
if (file.is_open())
{
size = file.tellg();
memblock = new char [size];
file.seekg (0, ios::beg);
file.read (memblock, size);
cout << "the complete file content is in memory";
for (int l=0; l<size; l++){
cout << " memblock[] is = " << (unsigned char)memblock[l] << " index was l = " << l << endl;
}
file.close();
delete[] …Run Code Online (Sandbox Code Playgroud) 我有一个简单的问题,如果我想在与系统时间输出相同的行上打印一个值,这可能吗?
char *date;
time_t timer;
timer=time(NULL);
date = asctime(localtime(&timer));
//printf("Current Date: %s", date);
std::cout << date << ", " << randomNumber << std::endl;
if (file.is_open())
{
file << date;
file << ", ";
file << randomNumber;
file << "\n";
}
Run Code Online (Sandbox Code Playgroud)
我希望会发生的是我会将其作为输出:
Wed Jan 16 16:18:56 2013, randomNumber
Run Code Online (Sandbox Code Playgroud)
但我最终得到的文件是:
Wed Jan 16 16:18:56 2013
, randomNumber
Run Code Online (Sandbox Code Playgroud)
另外,我刚做了一个简单的std :: cout,我注意到了同样的结果.似乎系统在输出结束处强制终止线,无论如何,我可以压制这个吗?
我最近开始使用C,我在简单的算术运算方面遇到了一些问题,只能将两个数相乘.
最初,我尝试将8*2的结果打印到文件中.目前这输出16.接下来,我乘以我真正想要的8*0.000000123456789.这是我的代码:
fprintf( fp2, "%d\n", (long double)(8*0.000000123456789));
Run Code Online (Sandbox Code Playgroud)
输出到文件的结果是:-1086490624.它确实应该是:0.000000987654312.我故意将算法类型化为长双,以防止任何溢出.没做任何事情并使用:
fprintf( fp2, "%d\n", (8*0.000000123456789));
Run Code Online (Sandbox Code Playgroud)
收益率1719134127,再次与0.000000987654312的实际值无关
有什么建议吗?
我试图不断从不同的文件中读取数据到unsigned char*类型的缓冲区.但是,在读取下一个文件之前,我似乎无法将缓冲区设置为NULL.
这里只是相关的代码:
#include <stdio.h>
#include <fstream>
int
main (int argc, char** argv) {
FILE* dataFile = fopen("C:\\File1.txt", "rb");
unsigned char *buffer = NULL;
buffer = (unsigned char*)malloc(1000);
fread(buffer,1,1000,dataFile);
fclose(dataFile);
dataFile = fopen("C:\\File2.txt", "rb");
buffer = NULL;
fread(buffer,1,1000,dataFile);
fclose(dataFile);
system("pause");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我遇到的错误是在第二次出现这行:fread(buffer,1,1000,dataFile);
我得到的错误是:
调试断言失败!表达式:(缓冲区!= NULL)
它指向fread.c的第147行,基本上是:
Run Code Online (Sandbox Code Playgroud)/* validation */ _VALIDATE_RETURN((buffer != NULL), EINVAL, 0); if (stream == NULL || num > (SIZE_MAX / elementSize)) { if (bufferSize != SIZE_MAX) { memset(buffer, _BUFFER_FILL_PATTERN, bufferSize); } _VALIDATE_RETURN((stream != NULL), …
c++ ×4
binary-data ×1
buffer ×1
c ×1
fread ×1
math ×1
matlab ×1
matlab-guide ×1
performance ×1
pointers ×1
systemtime ×1