我正在研究SDIO UART Linux/Android驱动程序的性能基准测试,并在待分析读取,写入功能实现的开始和结束时使用current_kernel_time(),然后打印时差.
大多数时候我得到时间差为0(零)纳秒(不管读/写数据的大小:16-2048字节),逻辑上我认为这是不正确的,只有极少数我得到一些值,希望这些是正确.
current_kernel_time()的可靠性如何?
为什么我大多数时间都会获得0ns?
我打算在内核级别进行分析以获取更多细节.在此之前,有人可以对这种行为有所了解......之前有人观察过这样的事情......
此外,欢迎任何帮助/纠正我的基准测试方法的建议!
谢谢.
编辑:
这是Linux内核版本2.6.32.9的读取代码.我在#ifdef-endif下添加了current_kernel_time(),如下所示:
static void sdio_uart_receive_chars(struct sdio_uart_port *port, unsigned int *status)
{
#ifdef SDIO_UART_DEBUG
struct timespec time_spec1, time_spec2;
time_spec1 = current_kernel_time();
#endif
struct tty_struct *tty = port->tty;
unsigned int ch, flag;
int max_count = 256;
do {
ch = sdio_in(port, UART_RX);
flag = TTY_NORMAL;
port->icount.rx++;
if (unlikely(*status & (UART_LSR_BI | UART_LSR_PE |
UART_LSR_FE | UART_LSR_OE))) {
/*
* For statistics only
*/
if (*status & UART_LSR_BI) {
*status &= ~(UART_LSR_FE | UART_LSR_PE); …Run Code Online (Sandbox Code Playgroud) 在Android设备(包括4.4.2)上,默认的浏览器和Chrome支持HTML5缓存清单.但是,在这些相同的设备上,WebView组件似乎不支持HTML5缓存清单.有谁知道如何让WebView组件支持HTML5清单?
我正在尝试用不同的值替换几个不同的字符.例如,如果我有:#love hate那么我想做的就是回来%23love%20hate
这与团体有关吗?我试图理解使用组,但我真的不理解它.
使用php 5.2,我正在尝试使用工厂将服务返回给控制器.我的请求uri的格式为www.mydomain.com/service/method/param1/param2/etc.然后我的控制器将使用uri中发送的令牌调用服务工厂.从我所看到的情况来看,我的工厂有两条主要路线可供选择.
单一方法:
class ServiceFactory {
public static function getInstance($token) {
switch($token) {
case 'location':
return new StaticPageTemplateService('location');
break;
case 'product':
return new DynamicPageTemplateService('product');
break;
case 'user'
return new UserService();
break;
default:
return new StaticPageTemplateService($token);
}
}
}
Run Code Online (Sandbox Code Playgroud)
或多种方法:
class ServiceFactory {
public static function getLocationService() {
return new StaticPageTemplateService('location');
}
public static function getProductService() {
return new DynamicPageTemplateService('product');
}
public static function getUserService() {
return new UserService();
}
public static function getDefaultService($token) {
return new StaticPageTemplateService($token);
}
}
Run Code Online (Sandbox Code Playgroud)
所以,考虑到这一点,我将有一些通用服务,我将传递该令牌(例如,StaticPageTemplateService和DynamicPageTemplateService),它可能会实现另一个工厂方法,就像这样来获取模板,域对象等等.将是特定服务(例如,UserService),它将是该令牌的1:1而不会被重用.因此,对于少量服务而言,这似乎是一种不错的方法(如果不是,请提供建议).但是,随着时间的推移,随着时间的推移和我的网站的增长,我最终会有100种可能性.这似乎不再是一个好方法.我只是开始使用或者是否有其他更适合的设计模式?谢谢. …
可能重复:
在python中反转正则表达式
我想我遇到的问题听起来比它更容易......我不太确定.我想定义一个正则表达式,我想构建一些匹配它的字符串.
我可以导入任何具有此功能的模块吗?优选地,不是使用re.search或的蛮力方法re.match.必须有一种更优雅的方式来做到这一点.
我正在研究一个有几个冲突的长度合并过程.
我可以做些什么来保存中间状态,以便定期保留备份以防万一?
我目前正在尝试在VB6/COM项目中使用一个标志枚举.但是,当尝试从枚举中读取值时,我得到的结果不一致.
这是枚举定义:
Enum Fruits
None = 0
Apple = 1
Strawberry = 2
Lemon = 4
End Enum
Run Code Online (Sandbox Code Playgroud)
我有一个暴露属于Fruits类型属性的对象
Public Get AvailableFruits as Fruits
Run Code Online (Sandbox Code Playgroud)
应该能够读取该值的代码用于显示/隐藏标签,具体取决于枚举的每个位的值:
lblAppleAvailable.Visible = basket.AvailableFruits And Fruits.Apple
Run Code Online (Sandbox Code Playgroud)
当我执行此代码时basket.AvailableFruits = 0,我得到True作为结果.
有什么可能导致这种行为的想法吗?
编辑:
我尝试过枚举的不同值:
basket.AvailableFruits = 0
basket.AvailableFruits And Apple // Returns True
basket.AvailableFruits And Strawberry // Returns True
basket.AvailableFruits And Lemon // Returns False
Run Code Online (Sandbox Code Playgroud)
作为副节点,在调试代码时,如果我将表达式放在监视表达式中,我会得到正确的值; 但是当我的代码中计算表达式时,它仍然返回True.
我尝试使用不同的检查语法:
(basket.AvailableFruits And Fruits.Apple) = Fruits.Apple
Run Code Online (Sandbox Code Playgroud)
仍然是真的时候basket.AvailableFruits = 0:-(
解
在测试了不同的解决方案之后,我已经能够将问题缩小到COM组件.此组件的原始编码器将指针设置为0而不是将0作为值返回,这在尝试读取值时导致问题.
我选择了FlipScript答案因为辅助函数,这似乎是提高代码可读性的好方法.
有没有办法在现有的UIPopoverController导航控制器中推送UIImagePickerController?
我所知道的是你必须创建一个新的popover并在其中添加UIImagePickerController.但我有一个现有的popover及其导航控制器应该呈现图像选择器.
我想在我的jQuery函数中调用editObject(),初始化调用确实有效,但是setTimeout不起作用,如何让它运行?控制台说setTimeout调用时没有定义editObject:
(function($){
$.fn.extend({
...
editObject()
function editObject() {
alert("Test!");
setTimeout('editObject()', 1000);
}
return this.each(function() {
var o = options;
});
}
});
})(jQuery);
Run Code Online (Sandbox Code Playgroud)
感谢帮助!
在C#中编写一个类时,如果只将它们分配给构造函数并且不会在类的其他地方进行更改,那么将所有私有成员变量标记为私有只读是一个好主意吗?或者这有点矫枉过正?
regex ×2
android ×1
benchmarking ×1
bitflags ×1
c# ×1
enums ×1
git ×1
iphone ×1
java ×1
javascript ×1
linux ×1
linux-kernel ×1
merge ×1
patch ×1
php ×1
python ×1
settimeout ×1
url ×1
vb6 ×1
webview ×1