logfc怎么计算(logfc怎么取值)
logfc怎么计算
您好,Log是日志的意思,主要用来记录软件运行中的错误信息。
1、在拨号界面,输入*#*#284#*#*。
2、手机连接电脑,在sdcard/MIUI找到debug_log文件夹,压缩一下发邮件给kefu@xiaomi.com,在邮件中要把你遇到的FC问题简要描述一下,这样更方便工程师快速处理。感谢您的支持,祝您生活愉快!
logfc怎么取值
“logFC”是表达水平差异的倍数的双倍对数。换句话说,值2表示四倍的差异。logFC是FC的对数值,意义就是“差值倍数”,其值的正负你要根据对照组来判断,对于“在一个库里面是正的,在另一个库里面是副的”,如果他们的对照组是同种类型的标本,那表达方向是不一致的。
logfc值
FC (fold change)也就是倍数改变,一般取两个样本的比值的均值,由于两个样本之间差异过大,为了缩小数值之间的差异,做对数转换,也就对应公式
Log 2FC=log 2 (mean (group1/group2)
注意:Immia 分析 log 2FC 公式定义不一样!!
logfc的意义
蓝屏代码0x00000073在电脑使用过程中突然电脑蓝屏0x00000073,您收到类似于以下内容的“停止”错误消息:
STOP:0x00000073(0x00000001,0xc000017d,0x00000002,0xfc96fcc0)CONFIG_LIST_FAILED蓝屏的原因:通常来说如果出现这个问题,基本上就是内存太小或者虚拟内存太小,当然我认为也有可能是内存条本身的问题。
此“停止”错误表明在Windows注册表中不能链接到核心Windows系统配置单元之一(SAM配置单元、SECURITY配置单元、SOFTWARE配置单元或DEFAULT配元)。
不过,出现0x00000073错误消息并不意味着此配置单元已损坏或未成功加载。解决办法:我们主要获取第二个参数的Windows状态代码,在本例中为STOP:0x00000073(0x00000001,0xc000017d,0x00000002,0xfc96fcc0)
?0xc000017d:STATUS_NO_LOG_SPACE是此错误最常见的原因之一。
此参数表明在系统驱动器上Windows没有足够的可用硬盘空间。从系统驱动器上释放一些磁盘空间可解决此问题。
?STOP:0x00000073(0x00000001,0xC000009A,0x00000002,0xfc96fcc0):STATUS_INSUFFICIENT_RESOURCES是此错误的另一个常见的原因。
此参数意味着没有足够的可用资源来完成API,这很可能表示Windows没有足够的内存(物理内存或分页文件内存)。
在很少的情况下此参数表示Windows内核用尽了分页池内存。
可以试试设置更大的虚拟内存空间或更换内存条来解决
logfc log2fc
1、注册服务
2、检测指定进程是否运行,如果没有运行,则运行进程
// WatchDogSvr.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "Windows.h"
#include "tlhelp32.h"
SERVICE_STATUS m_ServiceStatus;
SERVICE_STATUS_HANDLE m_ServiceStatusHandle;
BOOL bRunning=true;
void WINAPI ServiceMain(DWORD argc, LPTSTR *argv);
void WINAPI ServiceCtrlHandler(DWORD Opcode);
BOOL InstallService();
BOOL DeleteService();
const int nBufSize=512;
void WriteLog(const char* strLog)
{
FILE * fp;
fp=fopen("C:\\WatchDog.log","a");
if( fp==NULL ) return;
//fputs(strLog,fp);
fprintf(fp,"%s\n",strLog);
fclose(fp);
}
int GetProcessCount(const TCHAR* szExeName)
{
TCHAR sztarget[MAX_PATH];
lstrcpy(sztarget, szExeName);
CharLowerBuff(sztarget, MAX_PATH);
int count = 0;
PROCESSENTRY32 my;
HANDLE l = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (((int)l) != -1)
{
my.dwSize = sizeof(my);
if (Process32First(l, &my))
{
do
{
CharLowerBuff(my.szExeFile, MAX_PATH);
if (lstrcmp(sztarget, my.szExeFile) == 0)
{
count++;
}
}while (Process32Next(l, &my));
}
CloseHandle(l);
}
return count;
}
void RunServiceProcess(const TCHAR *strServiceName)
{
//清空结构
STARTUPINFO sInfo;
PROCESS_INFORMATION pInfo;
ZeroMemory(&sInfo,sizeof(sInfo));
sInfo.cb=sizeof(sInfo);
sInfo.dwFlags=STARTF_USESHOWWINDOW;
sInfo.wShowWindow=SW_SHOWNORMAL;
ZeroMemory(&pInfo,sizeof(pInfo));
//输出出错信息
char chBuf[nBufSize];
ZeroMemory(chBuf,nBufSize);
//创建一个进程
if(!::CreateProcess(strServiceName,NULL,
NULL,
NULL,
FALSE,
0,
NULL,
NULL,
&sInfo,
&pInfo))
{
sprintf(chBuf,"CreateProcess failed(%d).\n",GetLastError());
WriteLog(chBuf);
return;
}
// Wait until child process exits.
WaitForSingleObject(pInfo.hProcess,INFINITE);
//关闭进程和线程的句柄
CloseHandle(pInfo.hProcess);
CloseHandle(pInfo.hThread);
}
void DoTask()
{
if( GetProcessCount(_T("SjkDataCollect.exe"))==0)
{
RunServiceProcess(_T("C:\\xxx.exe"));
WriteLog("can not find process [SjkDataCollect.exe] and run process!");
}
}
int _tmain(int argc, _TCHAR* argv[])
{
if(argc>1)
{
if( wcscmp(argv[1],L"-i")==0)
{
if(InstallService())
printf("\n Service Installed Sucessfully\n");
else
printf("\n Service has been installed\n");
}
else if(wcscmp(argv[1],L"-d")==0)
{
if(DeleteService())
printf("\n Service UnInstalled Sucessfully\n");
else
printf("\nInstalled Easin Central Service Not Found\n");
}
else
{
printf("\nUnknown Switch Usage\nFor Install use Servicetest -i\nFor UnInstall use Servicetest -d\n");
}
}
else
{
SERVICE_TABLE_ENTRY DispatchTable[]={{L"WatchDogSvr",ServiceMain},{NULL,NULL}};
StartServiceCtrlDispatcher(DispatchTable);
}
return 0;
}
void WINAPI ServiceMain(DWORD argc, LPTSTR *argv)
{
// DWORD status;
// DWORD specificError;
m_ServiceStatus.dwServiceType = SERVICE_WIN32;
m_ServiceStatus.dwCurrentState = SERVICE_START_PENDING;
m_ServiceStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP;
m_ServiceStatus.dwWin32ExitCode = 0;
m_ServiceStatus.dwServiceSpecificExitCode = 0;
m_ServiceStatus.dwCheckPoint = 0;
m_ServiceStatus.dwWaitHint = 0;
m_ServiceStatusHandle = RegisterServiceCtrlHandler(L"WatchDogSvr",ServiceCtrlHandler);
if (m_ServiceStatusHandle == (SERVICE_STATUS_HANDLE)0)
{
return;
}
m_ServiceStatus.dwCurrentState = SERVICE_RUNNING;
m_ServiceStatus.dwCheckPoint = 0;
m_ServiceStatus.dwWaitHint = 0;
if (!SetServiceStatus (m_ServiceStatusHandle,&m_ServiceStatus))
{
}
bRunning=true;
while(bRunning)
{
Sleep(3000);
//Place Your Code for processing here....
DoTask();
}
return;
}
void WINAPI ServiceCtrlHandler(DWORD Opcode)
{
switch(Opcode)
{
case SERVICE_CONTROL_PAUSE:
m_ServiceStatus.dwCurrentState = SERVICE_PAUSED;
break;
case SERVICE_CONTROL_CONTINUE:
m_ServiceStatus.dwCurrentState = SERVICE_RUNNING;
break;
case SERVICE_CONTROL_STOP:
m_ServiceStatus.dwWin32ExitCode = 0;
m_ServiceStatus.dwCurrentState = SERVICE_STOPPED;
m_ServiceStatus.dwCheckPoint = 0;
m_ServiceStatus.dwWaitHint = 0;
SetServiceStatus (m_ServiceStatusHandle,&m_ServiceStatus);
bRunning=false;
break;
case SERVICE_CONTROL_INTERROGATE:
break;
}
return;
}
BOOL InstallService()
{
WCHAR strDir[1024];
SC_HANDLE schSCManager,schService;
GetCurrentDirectory(1024,strDir);
lstrcat(strDi1、注册服务
2、检测指定进程是否运行,如果没有运行,则运行进程
// WatchDogSvr.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "Windows.h"
#include "tlhelp32.h"
SERVICE_STATUS m_ServiceStatus;
SERVICE_STATUS_HANDLE m_ServiceStatusHandle;
BOOL bRunning=true;
void WINAPI ServiceMain(DWORD argc, LPTSTR *argv);
void WINAPI ServiceCtrlHandler(DWORD Opcode);
BOOL InstallService();
BOOL DeleteService();
const int nBufSize=512;
void WriteLog(const char* strLog)
{
FILE * fp;
fp=fopen("C:\\WatchDog.log","a");
if( fp==NULL ) return;
//fputs(strLog,fp);
fprintf(fp,"%s\n",strLog);
fclose(fp);
}
int GetProcessCount(const TCHAR* szExeName)
{
TCHAR sztarget[MAX_PATH];
lstrcpy(sztarget, szExeName);
CharLowerBuff(sztarget, MAX_PATH);
int count = 0;
PROCESSENTRY32 my;
HANDLE l = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (((int)l) != -1)
{
my.dwSize = sizeof(my);
if (Process32First(l, &my))
{
do
{
CharLowerBuff(my.szExeFile, MAX_PATH);
if (lstrcmp(sztarget, my.szExeFile) == 0)
{
count++;
}
}while (Process32Next(l, &my));
}
CloseHandle(l);
}
return count;
}
void RunServiceProcess(const TCHAR *strServiceName)
{
//清空结构
STARTUPINFO sInfo;
PROCESS_INFORMATION pInfo;
ZeroMemory(&sInfo,sizeof(sInfo));
sInfo.cb=sizeof(sInfo);
sInfo.dwFlags=STARTF_USESHOWWINDOW;
sInfo.wShowWindow=SW_SHOWNORMAL;
ZeroMemory(&pInfo,sizeof(pInfo));
//输出出错信息
char chBuf[nBufSize];
ZeroMemory(chBuf,nBufSize);
//创建一个进程
if(!::CreateProcess(strServiceName,NULL,
NULL,
NULL,
FALSE,
0,
NULL,
NULL,
&sInfo,
&pInfo))
{
sprintf(chBuf,"CreateProcess failed(%d).\n",GetLastError());
WriteLog(chBuf);
return;
}
// Wait until child process exits.
WaitForSingleObject(pInfo.hProcess,INFINITE);
//关闭进程和线程的句柄
CloseHandle(pInfo.hProcess);
CloseHandle(pInfo.hThread);
}
void DoTask()
{
if( GetProcessCount(_T("SjkDataCollect.exe"))==0)
{
RunServiceProcess(_T("C:\\xxx.exe"));
WriteLog("can not find process [SjkDataCollect.exe] and run process!");
}
}
int _tmain(int argc, _TCHAR* argv[])
{
if(argc>1)
{
if( wcscmp(argv[1],L"-i")==0)
{
if(InstallService())
printf("\n Service Installed Sucessfully\n");
else
printf("\n Service has been installed\n");
}
else if(wcscmp(argv[1],L"-d")==0)
{
if(DeleteService())
printf("\n Service UnInstalled Sucessfully\n");
else
printf("\nInstalled Easin Central Service Not Found\n");
}
else
{
printf("\nUnknown Switch Usage\nFor Install use Servicetest -i\nFor UnInstall use Servicetest -d\n");
}
}
else
{
SERVICE_TABLE_ENTRY DispatchTable[]={{L"WatchDogSvr",ServiceMain},{NULL,NULL}};
StartServiceCtrlDispatcher(DispatchTable);
}
return 0;
}
void WINAPI ServiceMain(DWORD argc, LPTSTR *argv)
{
// DWORD status;
// DWORD specificError;
m_ServiceStatus.dwServiceType = SERVICE_WIN32;
m_ServiceStatus.dwCurrentState = SERVICE_START_PENDING;
m_ServiceStatus.dwControlsAccepted = SERVICE_ACCEPT_STOP;
m_ServiceStatus.dwWin32ExitCode = 0;
m_ServiceStatus.dwServiceSpecificExitCode = 0;
m_ServiceStatus.dwCheckPoint = 0;
m_ServiceStatus.dwWaitHint = 0;
m_ServiceStatusHandle = RegisterServiceCtrlHandler(L"WatchDogSvr",ServiceCtrlHandler);
if (m_ServiceStatusHandle == (SERVICE_STATUS_HANDLE)0)
{
return;
}
m_ServiceStatus.dwCurrentState = SERVICE_RUNNING;
m_ServiceStatus.dwCheckPoint = 0;
m_ServiceStatus.dwWaitHint = 0;
if (!SetServiceStatus (m_ServiceStatusHandle,&m_ServiceStatus))
{
}
bRunning=true;
while(bRunning)
{
Sleep(3000);
//Place Your Code for processing here....
DoTask();
}
return;
}
void WINAPI ServiceCtrlHandler(DWORD Opcode)
{
switch(Opcode)
{
case SERVICE_CONTROL_PAUSE:
m_ServiceStatus.dwCurrentState = SERVICE_PAUSED;
break;
case SERVICE_CONTROL_CONTINUE:
m_ServiceStatus.dwCurrentState = SERVICE_RUNNING;
break;
case SERVICE_CONTROL_STOP:
m_ServiceStatus.dwWin32ExitCode = 0;
m_ServiceStatus.dwCurrentState = SERVICE_STOPPED;
m_ServiceStatus.dwCheckPoint = 0;
m_ServiceStatus.dwWaitHint = 0;
SetServiceStatus (m_ServiceStatusHandle,&m_ServiceStatus);
bRunning=false;
break;
case SERVICE_CONTROL_INTERROGATE:
break;
}
return;
}
BOOL InstallService()
{
WCHAR strDir[1024];
SC_HANDLE schSCManager,schService;
GetCurrentDirectory(1024,strDir);
lstrcat(strDir,L"\\WatchDogSvr.exe");
schSCManager = OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS);
if (schSCManager == NULL)
return false;r,L"\\WatchDogSvr.exe");
schSCManager = OpenSCManager(NULL,NULL,SC_MANAGER_ALL_ACCESS);
if (schSCManager == NULL)
return false;
本网站文章仅供交流学习 ,不作为商用, 版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除.