AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-189834

Cos64's questions

Martin Hope
Cos64
Asked: 2015-10-30 23:08:25 +0800 CST

如何诊断 Java 包中可能存在的回归?

  • 0

昨天,在安装每日软件更新后,我发现一个 Java 应用程序的 CPU 使用率很高,而该应用程序在此之前一直运行良好。Java 是更新的软件包之一。来自/var/log/apt/history.log:

Start-Date: 2015-10-29  07:18:28
Commandline: aptdaemon role='role-commit-packages' sender=':1.108'
Install: libsctp1:amd64 (1.0.16+dfsg-2), lksctp-tools:amd64 (1.0.16+dfsg-2, automatic)
Upgrade: python3-problem-report:amd64 (2.17.2-0ubuntu1.5, 2.17.2-0ubuntu1.7), qtcreator-plugin-ubuntu-common:amd64 (3.1.1+15.10.20150720-0ubuntu1~0vivid1, 3.1.1+15.10.20151018-0ubuntu1~0vivid1), python-apport:amd64 (2.17.2-0ubuntu1.5, 2.17.2-0ubuntu1.7), ubuntu-sdk-qmake-extras:amd64 (3.1.1+15.10.20150720-0ubuntu1~0vivid1, 3.1.1+15.10.20151018-0ubuntu1~0vivid1), libapache2-mod-php5:amd64 (5.6.4+dfsg-4ubuntu6.3, 5.6.4+dfsg-4ubuntu6.4), php5-mysql:amd64 (5.6.4+dfsg-4ubuntu6.3, 5.6.4+dfsg-4ubuntu6.4), php5-common:amd64 (5.6.4+dfsg-4ubuntu6.3, 5.6.4+dfsg-4ubuntu6.4), php5-curl:amd64 (5.6.4+dfsg-4ubuntu6.3, 5.6.4+dfsg-4ubuntu6.4), php5-dev:amd64 (5.6.4+dfsg-4ubuntu6.3, 5.6.4+dfsg-4ubuntu6.4), python-problem-report:amd64 (2.17.2-0ubuntu1.5, 2.17.2-0ubuntu1.7), qtcreator-plugin-ubuntu:amd64 (3.1.1+15.10.20150720-0ubuntu1~0vivid1, 3.1.1+15.10.20151018-0ubuntu1~0vivid1), php5-readline:amd64 (5.6.4+dfsg-4ubuntu6.3, 5.6.4+dfsg-4ubuntu6.4), php5:amd64 (5.6.4+dfsg-4ubuntu6.3, 5.6.4+dfsg-4ubuntu6.4), openjdk-7-jdk:amd64 (7u79-2.5.6-0ubuntu1.15.04.1, 7u85-2.6.1-5ubuntu0.15.04.1), shotwell-common:amd64 (0.20.2-0ubuntu3, 0.20.2-0ubuntu4), shotwell:amd64 (0.20.2-0ubuntu3, 0.20.2-0ubuntu4), openjdk-7-jre-headless:amd64 (7u79-2.5.6-0ubuntu1.15.04.1, 7u85-2.6.1-5ubuntu0.15.04.1), ntp:amd64 (4.2.6.p5+dfsg-3ubuntu6, 4.2.6.p5+dfsg-3ubuntu6.2), apport-kde:amd64 (2.17.2-0ubuntu1.5, 2.17.2-0ubuntu1.7), php5-cli:amd64 (5.6.4+dfsg-4ubuntu6.3, 5.6.4+dfsg-4ubuntu6.4), openjdk-7-jre:amd64 (7u79-2.5.6-0ubuntu1.15.04.1, 7u85-2.6.1-5ubuntu0.15.04.1), openjdk-7-source:amd64 (7u79-2.5.6-0ubuntu1.15.04.1, 7u85-2.6.1-5ubuntu0.15.04.1), apport-gtk:amd64 (2.17.2-0ubuntu1.5, 2.17.2-0ubuntu1.7), apport:amd64 (2.17.2-0ubuntu1.5, 2.17.2-0ubuntu1.7), php-pear:amd64 (5.6.4+dfsg-4ubuntu6.3, 5.6.4+dfsg-4ubuntu6.4), libaudiofile1:amd64 (0.3.6-2, 0.3.6-2ubuntu0.15.04.1), icedtea-7-jre-jamvm:amd64 (7u79-2.5.6-0ubuntu1.15.04.1, 7u85-2.6.1-5ubuntu0.15.04.1), openjdk-7-doc:amd64 (7u79-2.5.6-0ubuntu1.15.04.1, 7u85-2.6.1-5ubuntu0.15.04.1), python3-apport:amd64 (2.17.2-0ubuntu1.5, 2.17.2-0ubuntu1.7), php5-gd:amd64 (5.6.4+dfsg-4ubuntu6.3, 5.6.4+dfsg-4ubuntu6.4), ntpdate:amd64 (4.2.6.p5+dfsg-3ubuntu6, 4.2.6.p5+dfsg-3ubuntu6.2)
End-Date: 2015-10-29  07:19:15

当应用程序运行时,java和都Xorg使用超过 50% 的 CPU。这会导致应用程序普遍变慢,而且我确信过去并非如此。

该应用程序实际上是一个(基于摆动的)游戏。虽然它是开源的,但我想它不适合mcve,所以我不能用它来提交错误报告。另外,我不知道在哪里可以报告。

我的问题是:我怎样才能找出问题所在,以便我可以在某处(哪里?)报告错误并帮助解决问题?

我确实进行了线程转储,但我不知道如何处理它,因为实际上没有线程被阻塞。

我的环境:

$ java -version
java version "1.7.0_85"
OpenJDK Runtime Environment (IcedTea 2.6.1) (7u85-2.6.1-5ubuntu0.15.04.1)
OpenJDK 64-Bit Server VM (build 24.85-b03, mixed mode)

$ uname -a
Linux pif 3.19.0-31-generic #36-Ubuntu SMP Wed Oct 7 15:04:02 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 15.04
Release:    15.04
Codename:   vivid

我查看了 VisualVM,并注意到那里报告的 CPU 使用率 (10%) 比报告的top(45%) 小得多: 在此处输入图像描述

我尝试的另一件事是使用 Java 8 运行它。在这种情况下,游戏运行良好,并且报告的 CPU 使用率top分别为 20-22% 左右:java,Xorg和compiz.

xorg
  • 1 个回答
  • 147 Views
Martin Hope
Cos64
Asked: 2015-08-21 10:04:18 +0800 CST

如何将 UbuntuListView 保持在其边界之间?

  • 0

我有一个UbuntuListView用于 Ubuntu Touch 的 QML 应用程序。在它上面,还有另一个组件——一个TextField.

列表的初始位置看起来不错。此外,如果列表小于可用区域,则滚动没有问题。

初步名单

但是,如果列表足够大,在滚动时以及滚动完成后,列表会与上面的组件重叠:

滚动列表

主.qml

import QtQuick 2.4
import QtQuick.Layouts 1.1

import Ubuntu.Components 1.2

MainView {

    width: units.gu(40)
    height: units.gu(30)

    Page {
        ColumnLayout {
            spacing: units.gu(1)
            anchors {
                margins: units.gu(2)
                fill: parent
            }

            TextField {
                id: textInput
                Layout.fillWidth: true;
                placeholderText: i18n.tr("Add an item")
            }

            MyList {
                anchors {
                    left: parent.left
                    right: parent.right
                }

                Layout.fillHeight: true
            }
        }
    }
}

我的列表.qml

import QtQuick 2.4
import Ubuntu.Components 1.2
import Ubuntu.Components.ListItems 1.0

Item {

    ListModel {
        id: listModel
        ListElement {itemName: 'one'}
        ListElement {itemName: 'two'}
        ListElement {itemName: 'three'}
        ListElement {itemName: 'four'}
    }

    UbuntuListView {
        anchors.fill: parent

        model: listModel

        delegate: ListItem {
            id: listItem

            divider.visible: false
            Label {
                id: label
                text: itemName

                verticalAlignment: Text.AlignVCenter
                height: parent.height
            }
        }
    }
}

我尝试更改z组件的属性,但没有帮助。

我在滥用 API 吗?还是 Ubuntu SDK 中的错误?(如果是这样,是否有任何解决方法?)

ubuntu-touch
  • 1 个回答
  • 90 Views
Martin Hope
Cos64
Asked: 2015-08-07 10:12:05 +0800 CST

为什么点击包验证失败?

  • 0

我正在尝试为 Ubuntu touch 发布一个应用程序,但我无法通过验证阶段。我正在使用 Ubuntu SDK。当前构建配置用于设备 (armhf)。我能够在设备上运行该应用程序。在“发布”选项卡中,我点击了“构建并验证点击包”,我得到了 11 个“错误”节点,没有更多信息。 在此处输入图像描述

如果我选择“验证现有的点击包”并从构建目录中选择我的点击文件,情况也是如此。

我确实展开了“日志”节点,但只有一个巨大的 JSON,里面没有任何可疑的东西(并不是我理解它的大部分内容)。

我怎样才能找出问题所在?


编辑:仔细一看,我在日志中发现了这个错误:

"error": {
  "security_policy_version_matches_framework (Trolly.apparmor)": {
    "manual_review": false,
    "text": "Invalid framework 'ubuntu-sdk-15.04-html'"
  }
}

我的apparmor文件包含:

{
    "policy_groups": [
        "networking",
        "webview"
    ],
    "policy_version": 1.3
}
ubuntu-touch
  • 1 个回答
  • 72 Views
Martin Hope
Cos64
Asked: 2015-05-29 06:09:52 +0800 CST

将信号连接到 JavaScript 方法的正确方法是什么?

  • 0

在 Ubuntu 手机应用程序中,我需要在事件发生时执行一些逻辑。由于我不想用太多行的 JavaScript 污染 QML,我在外部文件中创建了一个类,并将信号连接到它的一个方法:

主.qml

import QtQuick 2.0
import Ubuntu.Components 1.1
import "action.js" as ActionJs

MainView {
    objectName: "mainView"

    applicationName: "example.cos64"

    useDeprecatedToolbar: false

    width: units.gu(20)
    height: units.gu(20)

    Page {

        Button {
            id: clickMeButton

            text: "Click me"

            onClicked: {
                console.log('clicked');
            }

            Component.onCompleted: {
                var action = new ActionJs.Action();
                clickMeButton.clicked.connect(action.handleClick)
            }
        }
    }
}

动作.js

function Action() {

    this.handleClick = function() {
        console.log('handleClick');
        this.process();
    }

    this.process = function() {
        console.log('processing...')
    }
}

它有效,但我无法从插槽中调用任何其他方法:

Starting /usr/lib/x86_64-linux-gnu/qt5/bin/qmlscene...
qml: clicked
qml: handleClick
file:///home/co64/projects/ubuntu/Example/action.js:5: TypeError: Property 'process' of object [object Object] is not a function

为什么“过程”不被识别为函数?难道我做错了什么?

ubuntu-touch
  • 1 个回答
  • 652 Views
Martin Hope
Cos64
Asked: 2015-05-02 00:42:46 +0800 CST

“启动作业正在为 /etc/rc.local 兼容性运行”:如何修复?

  • 5

我今天刚升级到 Ubuntu Vivid (15.04),重启后我经历了一个很长的启动过程。我的笔记本电脑通常会在 5 秒或更短的时间内启动,现在几分钟后还没有完成。

按下Esc显示如下画面:

在此处输入图像描述

最后一行说“A start job is running for /etc/rc.local Compatibility (7 min 24s / no limit)”。尽管有“无限制”部分,它在整整 10 分钟后放弃(或完成?),引导过程完成。

每次启动时都会发生这种情况。

它可能与向 systemd 的过渡有关吗?我怎样才能解决这个问题?(现在,我在关闭笔记本电脑之前三思而后行)。我应该报告错误吗?如果是这样,在哪里?

我的/etc/rc.local档案:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
fstrim -v /
fstrim -v /home
exit 0

该文件是可执行的:

$ ls -l /etc/rc.local
-rwxr-xr-x 1 root root 333 aug 14  2013 /etc/rc.local

fstrim大约 2 年前,当我安装 SSD 时,我按照Easy Linux tips project的说明添加了 2行。

显然这些是我的问题的原因(我删除它们并重新启动 - 问题消失了),但我仍然认为系统不应该像那样挂起 10 分钟。另外,我fstrim现在如何在启动时运行?

boot
  • 3 个回答
  • 23721 Views
Martin Hope
Cos64
Asked: 2015-04-19 06:03:04 +0800 CST

如何使 QML Canvas 可见?

  • 2

我正在尝试在 Ubuntu 手机应用程序的屏幕上画一些东西。我在 Ubuntu SDK 中创建了一个新的“QML App with Simple UI (qmlproject)”,并将其中的内容替换为Main.qml以下内容:

import QtQuick 2.0
import Ubuntu.Components 1.1

MainView {
    objectName: "mainView"

    applicationName: "canvasexample.cos64"

    useDeprecatedToolbar: false

    width: units.gu(50)
    height: units.gu(50)

    Page {
        title: i18n.tr("Canvas Example")

        Canvas {
            anchors {
                margins: units.gu(2)
                fill: parent
            }
            id: canvas
            width: 100
            height: 200
            onPaint: {
                console.log("on paint");
                var ctx = canvas.getContext('2d');
                ctx.save();
                ctx.clearRect(0, 0, canvas.width, canvas.height);
                ctx.beginPath();
                ctx.lineTo(75,70);
                ctx.closePath();
                ctx.stroke();
                ctx.restore();
            }

            onPainted: {
                console.log("painted");
            }

            MouseArea {
                id: buttonMouseArea
                anchors.fill: parent
                onClicked: {
                    console.log("clicked");
                    canvas.requestPaint();
                }
            }

            Component.onCompleted: {
                console.log("completed")
            }

            onScaleChanged: {
                console.log("scale changed")
            }

            onRotationChanged: {
                console.log("rotated");
            }
        }
    }
}

我没有收到任何错误,但画布不可见,尽管我可以单击它,如控制台输出所示:

Starting /usr/lib/x86_64-linux-gnu/qt5/bin/qmlscene...
qml: completed
qml: on paint
qml: painted
qml: clicked
qml: on paint
qml: painted
/usr/lib/x86_64-linux-gnu/qt5/bin/qmlscene exited with code 0

这是正在运行的应用程序的样子:

画布示例的屏幕截图

我究竟做错了什么?

ubuntu-touch
  • 1 个回答
  • 1001 Views
Martin Hope
Cos64
Asked: 2015-03-30 01:17:35 +0800 CST

如何为 Ubuntu Touch 添加新的键盘布局?

  • 4

我有一部 Ubuntu 手机,我需要一种不在System Settings / Language & Text / Keyboard layouts列表中的语言(罗马尼亚语)的键盘布局。

我想为新布局的配置做出贡献,但我不知道从哪里开始。我需要添加或调整哪些文件?

还是有一些更简单的方法(比如只安装一个特定的包)?

ubuntu-touch
  • 1 个回答
  • 1317 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve